P1、P2として定義された線があり、その線に垂直な線を描画しようとしています。y = kx + m
var p = new PointF {X = 20, Y = 20};
var p2 = new PointF {X = 50, Y = 100};
//Calculate K
var k1 = (p2.X - p.X)/(float) (p2.Y - p.Y);
//Since k1*k2 = -1 for a perpendicular line:
var k2 = (1/k1)*-1;
//the lines intersect in p2.
var m2 = p2.Y - k2*p2.X;
//choose arbitrary X value
var p3 = new PointF {X = p2.X + 20};
p3.Y = (k2*p3.X) + m2;
var newK = (p3.X - p2.X)/(float)(p3.Y-p2.Y);
このnewKを実行すると、-1になるはずの値-0.375が得られます。
編集:newKは-1ではなく-2,666667である必要があります。
私は何が欠けていますか?