如何在给定点的线段上绘制垂线?我的线段定义为(x1,y1),(x2,y2),如果我从点(x3,y3)绘制一个垂直线并且它在点(x4,y4)上遇到线.我想找出这个(x4,y4).
我一直在设法解决这个问题。
要解决的问题
说我有3分。
P1 ---------- P2, and P3 can be anywhere around P1 and P2
Run Code Online (Sandbox Code Playgroud)
将P3插值到P1和P2之间的直线上要计算的公式是什么?
我需要一个公式来计算P3和P1之间的直线的新X,Y坐标。
到目前为止我的代码
public Point lerp(Point P0, Point P1, Point P)
{
double y1 = P0.Y + (P1.Y - P0.Y) * ((P.X - P0.X) / (P1.X - P0.X));
double x1 = P.X;
double y2 = P.Y;
double x2 = P0.X + (P1.X - P0.X) * ((P.Y - P0.Y) / (P1.Y - P0.Y));
return new Point((x1 + x2) / 2, (y1 + y2) / 2);
} …Run Code Online (Sandbox Code Playgroud) 我需要以下列方式画一条线:
目前,它只会在代码中绘制,而不是用户输入.
我的问题是,如果我逐点绘制它,如何将垂线绘制成一条直线?(显然,情况就是如此,因为使用贝塞尔曲线绘制不会让我有可能以某种方式影响绘图).
我找到的最接近的答案可能就是这个,但是我无法反转方程式来推导C.同样没有提到装饰的长度,所以我认为这不会像我想的那样有效.