2

与えられた:

p1 = (-10,  2, -0.01)
p2 = (-20, -2, -0.03)

これらのポイントを 3D 長方形で表現しようとしています。3D 長方形の幅、高さ、奥行きがあります。ここで、投影タイプは正投影で、デカルト座標系です

p1とp2を2D化して、線を引きたいと思います。

どのようにそれを行うことができますか?

画像はこちら

ここに画像の説明を入力

4

2 に答える 2

3

あなたが探しているのは、正投影と呼ばれるものです。より一般的な透視図法よりも理解するのが少し簡単ですが、それも調べたいと思うかもしれません.

正射投影を理解する直感的な方法: 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 ]
于 2012-09-05T19:09:26.043 に答える
0

作業しやすいので、次のポイントを使用しました。

p1 = (50, 100, 0)
p2 = (200, 250, 50)

3D の長方形 (立方体) を作成するには、いくつかの手順を実行する必要があります。

  • 2 つの点を立方体の角の点に変換します。たとえば、右下隅の正面と下の座標はp1で、水平座標はp2です。
  • 正投影の投影式を使用します。最も単純な形式では、これを使用できます。
2D       3D
x   =   x + z
y   =   y - z
  • 立方体を構成するラインを構成します。たとえば、正面下部の水平ラインなどです。

私は ActionScript を知りませんが、ここに概念実証があります: http://jsfiddle.net/3NLVe/ .

于 2012-09-05T18:04:07.580 に答える