CustomGraphicsLinesを CustomGraphicsViewScaleを指定して描いた端点の座標を得たい

CustomGraphicsLinesを CustomGraphicsViewScaleを指定して描いた端点の座標を得たい

obatake5TC3R
Advocate Advocate
283 Views
1 Reply
Message 1 of 2

CustomGraphicsLinesを CustomGraphicsViewScaleを指定して描いた端点の座標を得たい

obatake5TC3R
Advocate
Advocate

@Community managers,

This post is in Japanese but please leave it in this forum and help them to collect ideas and replies from other community members globally. Thanks.

 

 

いつもお世話になっております。

指定した座標にX,Y,Z軸のアイコンをCustomGraphicsGroupを使用して表示するコードを作っています。

そこで、CustomGraphicsGroupにCustomGraphicsLinesを追加してviewScale(100Pixel)を指定しています。

そのラインの終点にX,Y,Zのアイコンイメージ(.png)を表示したいのですが、表示する座標を得る方法がわかりません。

CustomGraphicsLinesのcoordinatesで得られる座標はviewScaleが反映されていないようです。

よろしくお願いいたします。

 

 

0 Likes
284 Views
1 Reply
Reply (1)
Message 2 of 2

kandennti
Mentor
Mentor

@obatake5TC3R さん こんにちは

 

ある程度試してみましたが、難しいですね。

恐らく直接得るための関数は無い様な気がしてます。

 

可能性を感じたのは、ViewportオブジェクトのmodelToViewSpaceメソッドです。

https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-893092AA-905B-4DBF-83B9-480D979590AC 

恐らく元のデータはLine3Dだと思うのですが、この両端点を

modelToViewSpaceを利用すると、今見ている画面上のpoint2Dが取得出来ます。

この2点から2次元ベクトルが取得出来るので、目的の先端が画面上のどちらの方向か?

がわかります。

 

残りの100pixelの長さは、、、cameraオブジェクトのviewExtentsメソッドか

eyeとtargetの距離を利用し、(かなり)試した上でピクセルとスケール値を

調べておく必要があるような気がしています。

https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-2358aa1b-6965-4e46-b6af-d38e6e2f0f68 

これは、ちょっと自信は無いです・・・。

 

仮に成功しても、先端の位置は画面を動かす(ムーブ・スピン・ズーム)度に変更されるので

頻繁に位置を修正する必要があると思います。

イメージとしては、作る原点の軸はCustomGraphicsで3次元空間上に1度作成すれば

良いのですが、目的の先端位置は画面上(2次元)に何度も配置するような感じですかね。

0 Likes