【发布时间】:2021-08-05 11:28:36
【问题描述】:
目前,我正在开发一个基于 Windows 窗体的简单绘图应用程序。我需要一种允许我选择当前对象并移动它的方法。 它基于Points绘制形状,例如Triangle类,并将它们存储在List中:
using System.Drawing;
namespace DrawingApplication
{
class Triangle : Shape
{
string label;
int triangleIndex;
Point[] pnt = new Point[3];
public Triangle(string label, int triangleIndex, Point[] inputPoints) : base(label, triangleIndex, inputPoints)
{
this.label = label;
this.triangleIndex = triangleIndex;
this.pnt = inputPoints;
}
public void draw(Graphics g, Pen blackPen)
{
g.DrawPolygon(blackPen, pnt);
}
}
}
我尝试了不同的方法来选择对象,但没有用。任何人都可以提供有助于找到解决方案的建议吗?
if (selectTriangleStatus)
{
if (clicknumber == 0)
{
one = new Point(e.X, e.Y);
clicknumber = 1;
}
else if (clicknumber == 1)
{
two = new Point(e.X, e.Y);
clicknumber = 2;
}
else
{
three = new Point(e.X, e.Y);
Point[] tempPoints = { one, two, three };
numTriangles++;
string label = "Triangle";
Triangle aShape = new Triangle(label, numTriangles ,tempPoints);
ShapesList.Add(aShape);
selectTriangleStatus = false;
clearCoordinates();
}
}
【问题讨论】:
-
“但没有用” 不足以描述您遇到的问题。你需要帮助哪一部分?你想在这里手动做多少?这是关于命中测试吗? (确定一个点是否在一个形状中?)这是关于鼠标交互的吗?这是关于绘画和绘画的吗?跟踪选择状态?有什么问题?