我有一个代码,它采用一个等式并使用点来绘制它。例如,如果方程式是y = ax ^ 2 + b * x + 1 - 那么我将从-100到100越过x,找到它们匹配的Y值并保持一个点列表。这是我在循环中的代码的一部分。我的窗口高度为800,宽度为800,因此对于点(0,0),我通过设置Canvas.SetTop(e1,400)和Canvas.SetLeft(e1,500)等来放置一个小的Elipse。对于等式中的每个点,我在“画布”上放置一个小椭圆来绘制等式。
如何在WPF中更好地绘制方程以获得平滑线,而不是虚线图?
Ellipse E1 = new Ellipse();
E1.Width = 5;
E1.Height = 5;
E1.Fill = Brushes.Black;
double y;
y = Exp1;
y = y / 5;
x = x / 5;
x = x + 500.0;
y = 400.0 - y;
Canvas.SetTop(E1, y);
Canvas.SetLeft(E1, x);
Can1.Children.Add(E1);
答案 0 :(得分:1)
您可以使用Path
class绘制所需的任何形状。一旦你知道每个参数的用途,它包括各种非常容易使用的曲线。您可以在MSDN的Shapes and Basic Drawing in WPF Overview页面上找到介绍基础知识的介绍性文章。您可以在第一个链接页面中找到更多绘图示例。
有一点需要注意的是,您可能会发现使用Blend定义数学符号要容易得多,然后使用自动生成的XAML,而不是尝试用C#编写全部数据符号。
如果您不想自己绘制所有内容,可以在StackOverflow上的How to render a formula in WPF or WinForms问题的最流行答案中找到许多替代解决方案,例如第三方库和控件。