如何在垂直于给定线的直线上找到两个点

时间:2018-03-14 15:44:04

标签: unity3d

从这张图片:

我有一条P0P1线,两点都知道。如何在垂直于P0P1的线上找到两个点,比如Q0和Q1?

1 个答案:

答案 0 :(得分:0)

假设您正在使用2D。要计算Q0Q1(P0P1的垂直向量),您需要在3D空间中使用“临时”垂直向量(此向量“进入屏幕”或“离开”它)。感谢这个临时矢量,你将能够获得Q0Q1。

Vector3 P0 = ... ;
Vector3 P1 = ... ;
Vector3 P0P1 = P1 - P0 ;
Vector3 cross = Vector3.Cross( P0.normalized, P0P1.normalized ); // Temporary vector
Vector3 Q0Q1 = Vector3.Cross( cross.normalized, P0P1.normalized );
Vector3 Q0 = (P0 + P1) * 0.5f + cross ;
Vector3 Q1 = (P0 + P1) * 0.5f - cross ;

如果您想了解Vector3.Cross操作的工作原理,请查看manual