如何在列表中存储线坐标?

我想将线的坐标存储在c#的列表中。我创建了一个列表:

List<int> lijst = new List<int>();

,我想在该列表中存储以下行:

canvas.DrawLine(pen,xStart,yStart,yStart - Height);
canvas.DrawLine(pen,xStart + Width,yStart);
canvas.DrawLine(pen,yStart - Height,yStart - Height); 

我该怎么做?

Q6246912 回答:如何在列表中存储线坐标?

使用DrawLineItem列表

var lijst = new List<DrawLineItem>();

DrawLineItem类

public class DrawLineItem
{
  public Pen Pen { get; set; }
  public int StartX { get; set; }
  public int StartY { get; set; }
  public int EndX { get; set; }
  public int EndY { get; set; }
  public DrawLineItem(Pen pen,int startX,int startY,int endX,int endY)
  {
    Pen = pen;
    StartX = startX;
    StartY = startY;
    EndX = endX;
    EndY = endY;
  }
}

如果不允许修改,则可以删除设置器。

如果需要,您可以将int替换为single

如果不需要,您可以删除Pen

如果需要使用一些重载的Point方法,则可以对PointFDrawLine使用相同的模式。

用法

lijst.Add(new DrawLineItem(pen,xStart,yStart,yStart - Height));
lijst.Add(new DrawLineItem(pen,xStart + Width,yStart));
lijst.Add(new DrawLineItem(pen,yStart - Height,yStart - Height));

建议

例如,您应重命名lijst中不干净的名称listDrawLines

例如,您可以做这样的事情:

foreach ( var item in listDrawLines )
  canvas.DrawLine(item.Pen,item.StartX,item.StartY,item.EndX,item.EndY);
,

使用

var lijst = new List<(Pen,Point,Point)>();

其中Point是System.Drawing.Point

,
public abstract class Shape
{
    protected string description;
    protected Color edgeColor;
    protected Pen pen;
    public Weergave Weergave;

    //public line lijnen;
    //public List<int> lijst;

    public virtual void Draw(ShapeDisplay sd,Graphics canvas)
    {
        // we define a uniform pen size for all shapes
        //pen = new Pen(this.edgeColor,3);
        Weergave.Draw1(sd,canvas);
    }
}

public abstract class Weergave
{
    protected Color randkleur;
    protected Pen pen;

    public virtual void Draw1(ShapeDisplay sd,Graphics canvas)
    {
        pen = new Pen(this.randkleur,3);
    }
}
public class Graphical : Weergave
{
    public override void Draw1(ShapeDisplay sd,Graphics canvas)
    {
        foreach (var item in) 
    }
}

在操作'weergave.draw1(sd,canvas)中,另一个类被调用。 “ weergave”类。在此类中,应绘制矩形或形状的实际线条

本文链接:https://www.f2er.com/3136624.html

大家都在问