Sen*_*rek 0 c# math geometry itext coordinates
当您只有线条的源点和目标点的坐标时,有没有一种很好的方法来绘制箭头?
所以我使用 ITextSharp,用 c# 编程。我知道如何轻松计算坡度和其他内容,但是有没有办法计算“箭头”三角形(在图像中标记为红色)的边缘坐标?
提前致谢
你的中心线是从(x1,y1)到 的向量(x2,y2)
向后方向向量D = (dx, dy) = (x1-x2, y1-y2)
它的长度:Norm = Sqrt(dx * dx + dy * dy)
将其标准化:uD = (udx, udy) = (dx/Norm, dy/Norm)
要形成箭头的“翅膀”,请旋转uD所需的角度。例如,我将角度Pi/6与Cos(Pi/6) = Sqrt(3)/2和 一起使用Sin(Pi/6) = 1/2
ax = udx * Sqrt(3)/2 - udy * 1/2
ay = udx * 1/2 + udy * Sqrt(3)/2
bx = udx * Sqrt(3)/2 + udy * 1/2
by = - udx * 1/2 + udy * Sqrt(3)/2
Run Code Online (Sandbox Code Playgroud)
头部与翼长的要点L=20:
(x1 + 20 * ax, y1 + 20 * ay)
and
(x1 + 20 * bx, y1 + 20 * by)
Run Code Online (Sandbox Code Playgroud)