如何计算形成闭合/开放形状的两个方向矢量之间的角度?

Imm*_*dha 4 geometry pattern-recognition shape

我想找出正确的触发器.eq./function确定以下内容:两个DIRECTION VECTORS(已确定)之间角度变化(以DEGREES为单位),代表两个线段.这用于SHAPE RECOGTNITION(由用户在屏幕上手绘)的上下文中.

基本上,

a)如果用户绘制(粗糙)形状,例如圆形,椭圆形或矩形等,则构成该形状的线被分解为20个点(xy对).

b)我为每个LINE SEGMENTS都有DirectionVector.

c)因此,线段(x0,y0)的BEGINNING将是前一行的END点(以便形成一个像矩形一样的闭合形状,比如说).

所以,我的问题是,给定上下文(即确定多边形的类型),如何找到两个DIRECTION VECTORS之间的角度变化(可用作x和y的两个浮点值)?

我见过很多不同的触发器.方程式,我正在寻求澄清.

非常感谢提前大家!

Lag*_*aer 6

如果(x1,y1)是第一个方向向量而(x2,y2)是第二个方向向量,则它成立:

cos(alpha)=(x1*x2 + y1*y2)/(sqrt(x1*x1 + y1*y1)*sqrt(x2*x2 + y2*y2))

sqrt表示平方根.

查看http://en.wikipedia.org/wiki/Dot_product

特别是"几何表示"部分.