0

始点(x0、y0)、終点(x2、y2)、勾配((x0、y0)と(x3、y3)の間の線)があり、平行四辺形を描きたいです。

(x0,y0)       (x1,y1)
     __________
     \         \  
      \         \
       \_________\ 
    (x3,y3)      (x2,y2)

誰かがこれを行う方法を教えてもらえますか?または、アルゴリズムなどを提案します。

編集:ここでy0=y1およびy2=y3

よろしく

4

3 に答える 3

3

勾配をとして示し、それをmとと仮定するy0=y1と、次のようy3=y2に計算できます。x3

m = (y3 - y0) / (x3 - x0)
y3 = y2
m = (y2 - y0) / (x3 - x0)
m*x3 - m*x0 = y2 - y0
m*x3 = y2 - y0 + m*x0
x3 = (y2 - y0 + m*x0) / m

そして同様に:

m = (y2 - y1) / (x2 - x1)
y1 = y0
m = (y2 - y0) / (x2 - x1)
m*x2 - m*x1 = y2 - y0
-m*x1 = y2 - y0 - m*x2
x1 = -(y2 - y0 - m*x2) / m
于 2011-01-20T01:08:39.590 に答える
2

十分なデータがありません。ちょうど2つのポイントと勾配がある場合、可能な平行四辺形は無限にあります(2つのポイントと勾配は平行四辺形ではなく2つの平行四辺形を定義します)。

図面から、水平方向の境界線を持つ平行四辺形を探しているように見えます。そうであれば、2番目の勾配が得られ、y0=y1およびy2=y3になります。

次のスロップを使用してx3を取得します。

x3 = ((y3-y0)/slope) + x0

まだ不明なx1のみがあります:

x1 = x0 + (x2-x3)

明らかに、あなたが解決策を持っていないか、無限の解決策を持っているとき、私はすべての退化したケースをチェックしませんでした。私はそれを他の誰かに任せます。

于 2011-01-20T00:51:04.800 に答える
1

一般に、平行四辺形の辺が軸に平行でない場合:

代替テキスト

z0とz1の式は次のとおりです。

z0 = {  Cos[phi]^2 (X2 + (Y0 - Y2) Cot[theta]) + 
        Cos[phi] (Y0 - Y2 + (X0 - X2) Cot[theta]) Sin[phi] + X0 Sin[phi]^2, 

        Y0 Cos[phi]^2 + 
        Cos[phi] (X0 - X2 + (-Y0 + Y2) Cot[theta]) Sin[phi] + 
        (Y2 + (-X0 + X2) Cot[theta]) Sin[phi]^2
     }

z1 = {  Csc[theta] (Cos[phi - theta] ((-Y0 + Y2) Cos[phi] + X2 Sin[phi]) - 
        X0 Cos[phi] Sin[phi - theta]), 

        Y2 Cos[phi]^2 + 
        Cos[phi] (-X0 + X2 + (Y0 - Y2) Cot[theta]) Sin[phi] + 
        (Y0 + (X0 - X2) Cot[theta]) Sin[phi]^2
     }
于 2011-01-20T03:17:01.230 に答える