很抱歉,如果之前已经提出此问题,但我找不到有效的回复或我能理解的回复
目前我有一个代码在Kinect中从一个关节到关节绘制一条线,这就形成了骨头:
drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
在图片aboe中,它显示了从圆圈到cirlce的平行线,有人可以向我解释或者让我来创建这些线条吗?
答案 0 :(得分:4)
如果你有一条从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。
如果您对此处更详细的内容感兴趣,可以使用Google搜索并搜索矢量数学或线性代数。