【发布时间】:2019-02-13 00:53:41
【问题描述】:
基本上我有一个菜单,用户可以选择要绘制的形状,然后用户点击两个点,在这两点之间,将绘制所选形状。
我做了以这种方式计算的 Square
// calculate ranges and mid points
xDiff = oppPt.X - keyPt.X;
yDiff = oppPt.Y - keyPt.Y;
xMid = (oppPt.X + keyPt.X) / 2;
yMid = (oppPt.Y + keyPt.Y) / 2;
// draw square
g.DrawLine(blackPen, (int)keyPt.X, (int)keyPt.Y,
(int)(xMid + yDiff / 2), (int)(yMid - xDiff / 2));
g.DrawLine(blackPen, (int)(xMid + yDiff / 2), (int)(yMid - xDiff / 2),
(int)oppPt.X, (int)oppPt.Y);
g.DrawLine(blackPen, (int)oppPt.X, (int)oppPt.Y,
(int)(xMid - yDiff / 2), (int)(yMid + xDiff / 2));
g.DrawLine(blackPen, (int)(xMid - yDiff / 2),
(int)(yMid + xDiff / 2), (int)keyPt.X, (int)keyPt.Y);
但我不知道如何以相同的方式绘制圆形和三角形
请指教,谢谢
【问题讨论】:
-
画一个圆你应该使用DrawEllipse;画一个三角形……好吧,你怎么能只知道两点就画一个三角形?
-
@Marco 我知道,但问题是如何根据 Windows 窗体上的用户鼠标点击事件计算大小
-
在你的 square 函数上你已经有 oppPt 和 keyPt 了,他们不是用户选择的点吗?
-
他们是,我设法画出正方形,我试图找到方程来使用这些选定的点来画一个圆和三角形
-
避免对一个 DrawLines commead 执行多个 DrawLine 命令。对于封闭的矩形,请使用 DrawRectangle。对于三角形使用 DrawPolygon !
标签: c# system.drawing