開始点、線の長さ、線の角度(x軸を基準)を指定して、線の方程式を見つけたり、線を描画したりするにはどうすればよいですか?
線の方程式は次のようなものです。
_m*x + n = y
_
mは角度で計算できます。 m = tan(angle)
開始点がわかっている場合は、nを見つけることができます。
_tan(angle) * startPoint_X + n = startPoint_Y
_
したがって、n = startPoint_Y - (tan ( angle) * startPoint_X )
線分を描き、長さ、始点、角度がわかっている場合、2つの方程式があります。
最初は_m*x + n = y
_です(解決しました)。
そして、これはm*(endPoint_X) + n = endPoint_Y
を意味します
2つ目は、endPointを見つけることです。
_length^2 = (endPoint_X - startPoint_X)^2 + (endPoint_Y - startPoint_Y)^2
_
まだわからないことが2つだけあります。endPoint_xとendPoint_Y方程式を書き換えると、次のようになります。
_length^2 = (endPoint_X - startPoint_X)^2 + ( m*(endPoint_X) + n - startPoint_Y)^2
_
これで、endPoint_X以外のすべてがわかりました。この方程式により、endPoint_Xの2つのソリューションが得られます。次に、2つの異なるednPoint_Yを見つけることができます。
あなたが知っている出発点(x1, x2)
、終点は(x1 + l * cos(ang), y1 + l * sin(ang))
ここで、l
は長さ、ang
は角度です。
始点(x1, y1)
をラインのもう一端(x2, y2)
と呼びましょう。
次に、長さ[L]とx軸からの角度[a]が与えられた場合:
x2 = x1 + (L * cos(a))
y2 = y1 + (L * sin(a))
角度がy軸からの場合-cosとsinを入れ替えます。
(x1,y1)
から(x2, y2)
まで線を引きます。
線をどの方向に移動するかについては、あいまいさが見つかるかもしれません。角度の定義方法には注意が必要です。
実際には2つの異なる質問があります。1つはタイトル、もう1つは本文です。
タイトルからの質問に答えることから始めましょう:
線方程式
線の方程式は
y = a*x + b
ここで、a
は線とX軸の間の角度の正接であり、b
は(0、0)を介して引かれた線の標高です。
角度と点が与えられた線方程式
(角度はわかっているので)a
は簡単に計算できますが、b
はわかりません。しかし、あなたも知っていますx0
およびy0
なので、b
を簡単に計算できます。
b = y0 - a*x0
これで、方程式は次のようになります。
y = tan(fi)*x + y0 - tan(fi)*x0 = tan(fi)*(x - x0) + y0
ポイント、角度、長さを指定してセグメントを描画
始点からセグメントを描画して、長さがLで、x軸に対する角度がfiになるようにします。
これはまったく別の問題です。
鋭角が(x0、y0)にある直角三角形を想像してください。
ヒポテヌサ(L)と角度(fi)を知っています。
定義により、
a = L*cos(fi) (adjacent, x)
b = L*sin(fi) (opposite, y)
必要なのは、x0とy0を追加することだけです。
x1 = x0 + L*cos(fi)
y1 = y0 + L*sin(fi)
_(0, 0)
_から_(x_length, tan(angle)*x_length)
_に描画する必要があります。勾配はtan(angle)
になります。この開始点からすべてを差し引くことにより、別の開始点に対してこれを調整できます。