【发布时间】:2012-03-22 09:46:10
【问题描述】:
我必须在 C# 中申请耕作。瓷砖会有一些形状,我的应用程序应该能够修改形状。我会有一些形状——多边形,由顶点组成。例如,我将有 16 个顶点的字段,然后我绘制多边形。
我需要知道如何使用拖放操作随顶点移动。我还必须重新计算其他顶点以便将一个图块与下一个图块相匹配,但这只是一些数学运算。
总结: 我在顶点字段中定义了 16 个顶点的多边形,我用一个顶点移动(用鼠标),重新计算其他顶点的坐标并绘制新的多边形。我的问题是移动(可能使用拖放)与顶点字段中的一个顶点。
这是我之前没有拖放的代码的一部分 - 只是为了了解我使用哪些工具来绘制一个图块:
private Bitmap canvasBitmap; //canvas for drawing
private Graphics g; // enter to graphics tool
Bitmap b = (Bitmap)Bitmap.FromFile("obr.bmp");
TextureBrush brush = new TextureBrush(b);
Pen pen = new Pen(Color.Black, 1);
hexaVertices[0] = new PointF(-40 + 40, 0 + 30);
hexaVertices[1] = new PointF(-20 + 40, 30 + 30);
hexaVertices[2] = new PointF(20 + 40, 30 + 30);
hexaVertices[3] = new PointF(40 + 40, 0 + 30);
hexaVertices[4] = new PointF(20 + 40, -30 + 30);
hexaVertices[5] = new PointF(-20 + 40, -30 + 30);
g.FillPolygon(brush, hexaVertices);
g.DrawPolygon(pen, hexaVertices);
谢谢你的建议。
【问题讨论】:
-
我认为您需要确定鼠标单击的是哪个顶点(Mouse Down 事件)。然后你应该听 Mouse Up 事件并记录坐标。现在您知道单击了哪个顶点以及最终位置。
标签: c# graphics drag-and-drop 2d