Wpf / WinRT指出了一颗心

时间:2013-08-24 13:52:07

标签: c# wpf xaml math winrt-xaml

我一直在画布上绘制各种形状,我已经设法计算出六边形,八边形甚至星形等数学。我似乎无法弄清楚如何画一颗心。有没有人有一个绘制心形所需要点的例子?

4 个答案:

答案 0 :(得分:6)

我不确定是否有一种非常简单的方法可以直接将方程式绘制到Canvas(尽管你当然可以通过编程方式从方程中创建Path。依赖于你想要的对于形状和你想要使用它的地方,你可以使用Path Markup Syntax定义一个Path并使用一些内置的弧和曲线。

e.g。 (很快把这个放在一起):

<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>

会创建如下所示的内容: enter image description here

使用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).

绘制下一条曲线,然后绘制弧线,返回顶部,完成形状。

你可能需要玩一下才能得到你想要的结果。

答案 1 :(得分:3)

心脏形状有许多数学方程式 - 一些极性,一些参数化。

一个特别令人信服的是:

x = 16sin^3(t)
y = 13cos(t) - 5cos(2t) - 2cos(3t) - cos(4t)

列出了一些好的on the Woflram website

答案 2 :(得分:2)

您可以使用以下等式在图表上绘制心脏。

((x ^ 2 + y ^ 2 - 1)^ 3) - (x ^ 2 * y ^ 3)= 0

enter image description here

来源:Wikipedia

答案 3 :(得分:0)

我看到它的方式,你可以绘制两个弧作为两个上相交圆的一部分,中心在同一个X轴上;然后两条较低的线将它们联合起来。我试图绘制一个例子,我希望这张图片足够具有启发性:drawing a heart