很抱歉,如果这已被问过,但我无法找到一个有效的响应或响应我能理解绘制在C#中平行线
目前我有画线从联合到联合在代码Kinect的,这形成了骨:
drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
在图片aboe它显示平行线从圈子加入到cirlce,可有人请向我解释或告诉我创建这些线路?
很抱歉,如果这已被问过,但我无法找到一个有效的响应或响应我能理解绘制在C#中平行线
目前我有画线从联合到联合在代码Kinect的,这形成了骨:
drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
在图片aboe它显示平行线从圈子加入到cirlce,可有人请向我解释或告诉我创建这些线路?
如果您有一条从点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搜索并搜索向量数学或线性代数。
噢,谢谢,当我回到家时,我会尝试这个,并且我大部分都明白,因为我必须使用向量数学来计算关节之间的角度。我唯一的问题是我该如何在圈子上面放一个这样的数字? – ShatteredPheonix
@ShatteredPheonix只需取得关节的位置并补偿一下。伪代码:'DrawText(text,p0 + new Point(0,-10))' – Chris
@ShatteredPheonix稍后你会注意到,如果你想得到完全像这样的图片的结果,你还需要修剪线圈到.. ..! – Chris
如果问题是关于游戏开发,你可能会得到更好的帮助(http://gamedev.stackexchange.com/) –
不是游戏开发,但我正在开发一个应该跟踪用户关节的程序,但是我很难做简单的事情,如图片显示。例如,我只需要知道如何绘制图片中显示的平行线以及圆圈上方的数字。 – ShatteredPheonix