我一直在画布上绘制各种形状,并且设法找出数学来做六边形、八边形甚至星星之类的事情。我似乎无法弄清楚如何画一颗心。有没有人有绘制心形所需点的示例?
问问题
3431 次
4 回答
7
我不确定是否有一种非常简单的方法可以将方程式直接绘制到Canvas
(尽管您当然可以通过Path
编程方式从方程式创建。..取决于您想对形状做什么,以及您想在哪里使用它,您可以Path
使用路径标记语法定义 a并使用一些内置的弧线和曲线。
例如(快速把这个放在一起):
<Canvas>
<Path Stroke="Red" StrokeThickness="3"
Data="M 241,200
A 20,20 0 0 0 200,240
C 210,250 240,270 240,270
C 240,270 260,260 280,240
A 20,20 0 0 0 239,200
" />
</Canvas>
将创建如下所示的内容:
它使用 2 条弧线和 2 条三次贝塞尔曲线。
您可以阅读有关语法链接的更多信息,但通过一个小解释(以下绘制了一半的心,从心顶部的倾角到底部的点,逆时针方向):
M 241,200 // Move to (241, 200)
A 20,20 0 0 0 200,240 // Draw an arc from current position to (200,240), with a size of 20x20 pixels
C 210,250 240,270 240,270 // Draw a cubic Bezier to point (240,270) with control points at (210,250), (240,270).
绘制下一条曲线,然后绘制圆弧,返回顶部,完成形状。
您可能需要尝试一下才能获得您想要的结果。
于 2013-08-24T16:49:08.383 回答
3
心形有许多数学方程——一些是极性的,一些是参数的。
一个特别有说服力的是:
x = 16sin^3(t)
y = 13cos(t) - 5cos(2t) - 2cos(3t) - cos(4t)
Wolfram 网站上有一些不错的列表。
于 2013-08-24T14:55:15.877 回答
2
于 2013-08-24T15:19:04.587 回答
0
在我看来,您可以绘制两条弧线作为两个上部相交圆的一部分,这些圆的中心在同一个 X 轴上;然后是两条较低的线将它们联合起来。我试着画一个例子,我希望这张图片足够暗示:
于 2013-08-24T14:24:19.313 回答