与えられた:
p1 = (-10, 2, -0.01)
p2 = (-20, -2, -0.03)
これらのポイントを 3D 長方形で表現しようとしています。3D 長方形の幅、高さ、奥行きがあります。ここで、投影タイプは正投影で、デカルト座標系です
p1とp2を2D化して、線を引きたいと思います。
どのようにそれを行うことができますか?
画像はこちら
与えられた:
p1 = (-10, 2, -0.01)
p2 = (-20, -2, -0.03)
これらのポイントを 3D 長方形で表現しようとしています。3D 長方形の幅、高さ、奥行きがあります。ここで、投影タイプは正投影で、デカルト座標系です
p1とp2を2D化して、線を引きたいと思います。
どのようにそれを行うことができますか?
画像はこちら
あなたが探しているのは、正投影と呼ばれるものです。より一般的な透視図法よりも理解するのが少し簡単ですが、それも調べたいと思うかもしれません.
正射投影を理解する直感的な方法: 3 次元座標系の各軸 (たとえば、例の H 軸、W 軸、および D 軸) には、画面座標 (つまり、使用する座標) に 2 次元の方向ベクトル(x,y)
があります図):
let: H-axis direction vector = (hx, hy)
W-axis direction vector = (wx, wy)
D-axis direction vector = (dx, dy)
and: origin screen position = (ox, oy)
これらの方向ベクトルの意味を理解するには: H 軸を描画し、(H=0, H=1, H=2, ...)
それ を の目盛でマークアップするとhx
、 は連続する目盛間の x 座標のhy
差であり、 は連続する目盛間の y 座標の差です。そのため、方向ベクトルを操作することで、任意の軸の方向とスケールを (他の軸とは無関係に!) 変更できます。
原点と方向ベクトルを選択したら、スクリーン座標(x, y)
を次のように計算できます。
x = H * hx + W * wx + D * dx + ox
y = H * hy + W * wy + D * dy + oy
この式の非常に規則的な乗算/加算構造は、基本的に行列の乗算です。
[ x y ] = [ H W D 1 ] * [ hx hy ]
[ wx wy ]
[ dx dy ]
[ ox oy ]
作業しやすいので、次のポイントを使用しました。
p1 = (50, 100, 0)
p2 = (200, 250, 50)
3D の長方形 (立方体) を作成するには、いくつかの手順を実行する必要があります。
p1
で、水平座標はp2
です。2D 3D
x = x + z
y = y - z
私は ActionScript を知りませんが、ここに概念実証があります: http://jsfiddle.net/3NLVe/ .