4つの点(x1、y1)、(x2、y2)、(x3、y3)、(x4、y4)((255、0)、(255、235)、(200、 35)、および(200、235)例のために) 、そして私はそれを次のようにnでmセクションで任意に分割します(大まかな図面はご容赦ください):
(x、y)の座標を見つけるにはどうすればよいですか?
線の傾斜をいじってみましたが、数学のスキルが錆びすぎて理解できません。何か案は?
4つの点(x1、y1)、(x2、y2)、(x3、y3)、(x4、y4)((255、0)、(255、235)、(200、 35)、および(200、235)例のために) 、そして私はそれを次のようにnでmセクションで任意に分割します(大まかな図面はご容赦ください):
(x、y)の座標を見つけるにはどうすればよいですか?
線の傾斜をいじってみましたが、数学のスキルが錆びすぎて理解できません。何か案は?
あなたの例による特定のケースでは、それは非常に簡単です。
まず、xの位置は簡単です。垂直線は常にy軸に平行であるため、xは単純にx幅をセクション数で割ったものです。
x = x1+((x2-x1)/a*xa)
どこ:
注:a
勾配の記号との混同を避けるために選択しました:m
。
yの場合、もう少し複雑です。まず、台形の上下の線上にある座標を見つける必要があります。これには標準の直線方程式を使用します。
y = mx+c
mを見つけるのは簡単です。それはただのDy/Dxです:
m = (y2-y1)/(x2-x1)
cを取得するには、x、y、mを式に代入します。
c = y-mx
それを取得したら、前に見つけたxの値を式に代入して、y座標を取得します。これを2回実行して、トップラインとボトムラインのポイントを取得します。
1 A 2
x------------x--------------x
| | |
| xC |
| | |
x------------x--------------x
3 B 4
すべて一緒に(擬似コード):
coordinateFromSection (x1 y1 x2 y2 x3 y3 x4 y4 gridX gridY sectionX sectionY) {
xC = x1+((x2-x1)/gridX*sectionX)
// top line:
m = (y2-y1)/(x2-x1)
c = y1-(m*x1)
yA = m*xC + c
// bottom line:
m = (y4-y3)/(x4-x3)
c = y3-(m*x3)
yB = m*xC + c
// Find yC by dividing line AB by gridY
yC = yA+((yB-yA)/gridY*sectionY)
return (xC yC)
}
上記のすべての計算は、(0,0)が画面の左上にあることを前提としています。