回答
外部/你的形狀輪廓可以非常簡單地與路徑和橢圓對象繪製。圓柱體的頂面也可以用網格中的多條線(作爲路徑對象)繪製。您可以繪製它們,使它們全部延伸到頂部橢圓外部,並使用頂部橢圓作爲蒙版來修剪它們。
圓柱體的垂直線稍微複雜一點。它們的座標可以通過以下公式來確定,假設汽缸的左邊緣是在x = 0,並且其中所述氣缸的左邊緣符合橢圓的左邊緣的點爲y = 0:
For i = 0 to NumberOfDivisions
HorizontalPosition = CircleRadius - (cos(pi/NumberOfDivisions * i) * CircleRadius)
TopOfLine = sin(pi/NumberOfDivisions * i) * CircleRadius * 0.5 //The 0.5 assumes that the ellipse will only be half as tall as it is wide.
BottomOfLine = TopOfLine + HeightOfCylinder
//draw vertical line where:
//X1=HorizontalPosition, Y1=TopOfLine
//X2=HorizontalPosition, Y2=BottomOfLine
Next
其中NumberOfDivisions + 1
等於您想要在圓柱上顯示的行數。
MSDN有一些很好的例子,開始使用Path class。
如果你需要的只是表示3D視缸的方式,沒有網格線,線性漸變畫刷和2級的對象會做的伎倆:
<Canvas >
<Path Width="111" Height="113.5" Canvas.Left="0" Canvas.Top="12.5" Stretch="Fill" StrokeLineJoin="Round" Stroke="#FF000000" Data="F1 M 177,190C 176.999,196.903 152.375,202.5 122,202.5C 91.6246,202.5 67.0006,196.903 67,189.979L 67,90L 177,90L 177,190 Z ">
<Path.Fill>
<LinearGradientBrush StartPoint="-0.00454615,0.5" EndPoint="1.00455,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FF28A528" Offset="0"/>
<GradientStop Color="#FF63B963" Offset="0.152943"/>
<GradientStop Color="#FF9FCE9F" Offset="0.362069"/>
<GradientStop Color="#FF006C00" Offset="0.991379"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Path.Fill>
</Path>
<Path Width="111" Height="26" Canvas.Left="0" Canvas.Top="0" Stretch="Fill" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF2CF72C" Data="F1 M 122,77.4999C 152.376,77.4999 177,83.0964 177,89.9999C 177,96.9035 152.376,102.5 122,102.5C 91.6244,102.5 67.0001,96.9035 67.0001,89.9999C 67.0001,83.0964 91.6245,77.4999 122,77.4999 Z "/>
</Canvas>
編輯 好吧,這個問題引起了我的興趣,我花了很多時間去寫一篇關於CodePoject的完整文章,以及繪製解決方案的簡單項目的源代碼。通常情況下,我不會遇到那麼多麻煩,但對於我開始學習C#而言,這是一個很好的簡單項目。
我不認爲這是他想要的結果,但+1因爲這是一個很酷的例子。 =) – CodingGorilla
...一個非常酷的例子。我的+1也是:) –
- 1. 如何繪製此路徑?
- 2. 如何在C#中繪製此WPF路徑#
- 3. 如何在此代碼中繪製此路徑
- 4. 在OpenStreetMap中繪製路徑
- 5. 在android中繪製路徑?
- 6. 與路徑數據繪製箭頭WPF
- 7. WPF繪製箭頭沿路徑
- 8. Mapview繪製路徑路徑
- 9. 繪製路徑
- 10. 如何繪製路徑到Android中
- 11. 如何使用WPF路徑繪製暫停按鈕
- 12. 在WPF中的路徑上繪製線索
- 13. Android繪製路徑
- 14. 繪製路徑 - iPhone
- 15. Android - 繪製路徑
- 16. WPF路徑複製
- 17. 如何在WPF中沿着路徑繪製一行加三角形?
- 18. 如何在Java中繪製Bézier路徑的控制點?
- 19. 如何實時繪製MapKit路徑(iOS7 +)
- 20. 如何使用位圖繪製路徑?
- 21. 如何繪製帶邊框的路徑?
- 22. Android ImageView如何繪製路徑
- 23. 如何繪製svg路徑動畫
- 24. 如何在java中設置此路徑?
- 25. 在drawRect中繪製大量的路徑
- 26. Android:在路徑中隨機繪製框
- 27. 在Android中逐漸繪製的路徑
- 28. Canvas在android中繪製路徑
- 29. 如何在WPF中分組路徑?
- 30. 如何在android中繪製路徑到畫布中?
您需要將其設置爲3D對象,或者僅將其繪製爲2D圖像,例如畫布上? –
我不確定如何,但看看http://msdn.microsoft.com/en-us/library/ms747437.aspx可能有幫助 – NominSim
@andronz在2D中繪製 –