抱歉,如果之前有人问过这个问题,但我找不到有效的回复或我能理解的回复
目前我有一个代码可以在 Kinect 中从关节到关节画一条线,这形成了骨骼:
drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
在上面的图片中,它显示了从圆连接到圆的平行线,有人可以向我解释或告诉我创建这些线吗?
抱歉,如果之前有人问过这个问题,但我找不到有效的回复或我能理解的回复
目前我有一个代码可以在 Kinect 中从关节到关节画一条线,这形成了骨骼:
drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
在上面的图片中,它显示了从圆连接到圆的平行线,有人可以向我解释或告诉我创建这些线吗?
如果您有一条从点到点的线p0
,p1
并且想要创建一条平行线/偏移线,则需要使用三角函数或矢量数学。
使用向量数学来做到这一点:
p0
和p1
伪代码:
Vector vLine = ( p1 - p0 ).Normalized();
Vector vPerp = new Vector( -vLine.Y, vLine.X );
Point newp0 = p0 + vPerp * offset distance
Point newp1 = p1 + vPerp * offset distance
DrawLine( newp0, newp1 );
反转偏移量或否定 vPerp 以在另一侧获得一条线。你如何做到这一点取决于你有什么可用的。System.Windows.Vector
并且System.Windows.Point
应该可以正常工作,因为您使用的是 WPF。
如果您对这里发生的更详细的内容感兴趣,请继续使用谷歌搜索并搜索向量数学或线性代数。