很抱歉,如果這已被問過,但我無法找到一個有效的響應或響應我能理解繪製在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