Cone tips do not point at the correct positions
オープン
まだ誰も着手していません。
bug
P2
- 主要言語
- JavaScript
- スター
- 18.3k
- フォーク
- 2k
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 28
説明
In the following, each of two vectors ends at the start of the next one. Tweaking the length of the cones in any way suited to examining them visually, they clearly do not point at the base of their successor cone as (naively?) expected. At least if we expect that the bases of the cones are centered to the start point of the vector it is representing.
import plotly.graph_objs as go
from numpy import array
points = [
[array([-0.03620968, 0.24876811, 5.51279187]), array([1.39049627, 0.57429448, 4.67921793])],
[array([1.39049627, 0.57429448, 4.67921793]), array([2.02424265, -0.15235655, 2.63707954])],
[array([ 2.02424265, -0.15235655, 2.63707954]), array([ 3.68335955, -1.14431782, 1.09909298])]
]
cone_traces = []
for pair in points:
start_point = pair[0]
end_point = pair[1]
vector = end_point - start_point
# a partial workaround to scale the vectors more or less to their actual length, which
# plottly does not allow fully controlling: https://github.com/plotly/plotly.js/issues/3613
scaled_vector = vector * 1.5
start_x, start_y, start_z = start_point[0], start_point[1], start_point[2]
end_x, end_y, end_z = end_point[0], end_point[1], end_point[2]
trace = go.Cone(
x=[start_x],
y=[start_y],
z=[start_z],
u=[scaled_vector[0]],
v=[scaled_vector[1]],
w=[scaled_vector[2]])
cone_traces.append(trace)
layout = go.Layout(
scene=dict(
camera=dict(
# set the virtual point of view to point to the origin
center=dict(x=0, y=0, z=0),
# set the virtual point of view to be positioned parallel to the depth axis, at a distance
# sufficently away from the vectors to see them all; although plotly won't fully respect the
# angle this eye position should make, https://stackoverflow.com/q/76q921229/1509695,
# it will be very very close to that, and the chart user can nudge the tilt to
# perfect the viewing angle.
eye=dict(x=0, y=0, z=-3))))
fig = go.Figure(data=cone_traces, layout=layout)
fig.show()
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
提供された Python go.Cone の例を再現し、円錐の長さとカメラ設定を変えて位置の不一致を確認します。対応する plotly.js の 3D 円錐レンダリング動作を追跡し、円錐の底面が提供されたベクトルの始点と揃うことを確認する回帰チェックを追加します。完了の条件は、円錐が期待される後続位置を指すことです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, python
- 領域
- data-visualization
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100