C# 绘制多条线

标签 c# line draw

我正在使用这段代码绘制多条线,但我觉得有更好的方法。
例如。通过使用多维数组?还是列表?

    private void drawLines()
    {
        int[] x1 = {   0,   0, 112, 222,   0, 333,   0,   1};
        int[] x2 = { 334, 334, 112, 222, 334, 333, 334,   1 };
        int[] y1 = { 100, 200, 300, 300,   1, 300, 300, 300 };
        int[] y2 = { 100, 200,   0,   0,   1,   0, 300,   0 };

        for (int i = 0; i < x1.Length; i++)
        {
            Line line = new Line();
            Grid myGrid = gg;
            line.Stroke = Brushes.Black;
            line.X1 = x1[i];
            line.X2 = x2[i];
            line.Y1 = y1[i];
            line.Y2 = y2[i];
            line.StrokeThickness = 2;
            myGrid.Children.Add(line);
        }

    }

最佳答案

我会创建一个 Line 类,它在 struct Point 中包含线的起点和终点,并制作该类的列表,而不是拥有四个数组。

public class MyLine
{
     public Point StartPoint {get; set;}
     public Point EndPoint {get; set;}

     public void DrawLine()
     {
         //Draw line code goes here
     }
}

现在你有了带有必填字段和画线方法的线类。您可能在其他类中的 drawLines 方法将创建 MyLine 类的列表,并可以使用 Line 类方法 DrawLine

绘制该 Lines 列表
private void DrawLines()
{
    List<MyLine> listMyLines = new  List<MyLine>();
    listMyLines.Add(new MyLine{StartPoint = new Point(0, 100), EndPoint = new Point(334, 100)});       

    for (int i = 0; i < listMyLines.Count; i++)
    {
         listMyLines[i].DrawLine();
    }
}

关于C# 绘制多条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660139/

相关文章:

C# 在使用属性之前检查属性是否存在

c# - Knockout.js 和 MVC

c++ - 为什么霍夫变换检测到两条线而只有一条线

python - 自动更新的打印时间

matlab - 如何在 MATLAB 图形中显示 x 轴和 y 轴?

Pygame 如何修复 'trailing pixels' ?

c# - 实体类型 <T> 不是当前上下文模型的一部分

c# - 应用程序中的服务器错误 '/demo'

css - 如何获得用于导航的交替底部边框颜色

java - 使用自引用数组,多边形是不可见的