Из вашего фрагмента кода я предполагаю, что вы пытаетесь нарисовать кривую. Для этого вы можете заглянуть в GraphicsPath
. Вместо того, чтобы рисовать отдельные точки, вы можете использовать точки в качестве координат, которые вы соединяете через линии. Затем в своем коде вы можете создать GraphicsPath
, используя метод AddLine
.
Это можно затем нарисовать на растровом изображении, например.
РЕДАКТИРОВАТЬ
Образец (не тестировался):
GraphicsPath p = new GraphicsPath();
for (float x = x1; x < x2; x += dx)
{
Point point = new Point();
point.X = x;
point.Y = Math.Sin(x);
Point point2 = new Point();
point2.X = x+dx;
point2.Y = Math.Sin(x+dx);
p.AddLine(point, point2);
}
graphics.DrawPath(p);
Другим способом будет использование класса WPF Path
, который будет работать примерно так же, но является реальным элементом пользовательского интерфейса, который вы можете добавить к дочерним элементам Canvas
.
РЕДАКТИРОВАТЬ
Люди отметили, что приведенный выше код является кодом Windows Forms. Ну, вот что вы можете сделать в WPF:
myPolygon = new Polygon();
myPolygon.Stroke = System.Windows.Media.Brushes.Black;
myPolygon.Fill = System.Windows.Media.Brushes.LightSeaGreen;
myPolygon.StrokeThickness = 2;
myPolygon.HorizontalAlignment = HorizontalAlignment.Left;
myPolygon.VerticalAlignment = VerticalAlignment.Center;
PointCollection points = new PointCollection();
for (float x = x1; x < x2; x += dx)
{
Point p = new Point(x, Math.Sin(x));
points.Add(p);
}
myPolygon.Points = points;
canvas1.Children.Add(myPolygon);