怎么获取GDI+绘制的图元?

kisstome88 2010-11-08 04:54:52
比如我用GDI+绘制了一条线,然后我想点击鼠标来获取这个图元不知道怎么做?
...全文
122 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城的刀声 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kisstome88 的回复:]

想请问一下bclz_vs:
public Boolean IsSelected(PintF currentMousePoint)
{
//判断当前鼠标的点,是否在startPoint和endPoint之间,以判断它是否选中了
}

怎么判断是否在startPoint和endPoint之间啊?
[/Quote]
我的几何不好,但作图形的,几何一定要好,你去实习下几何吧先
kisstome88 2010-11-09
  • 打赏
  • 举报
回复
想请问一下bclz_vs:
public Boolean IsSelected(PintF currentMousePoint)
{
//判断当前鼠标的点,是否在startPoint和endPoint之间,以判断它是否选中了
}

怎么判断是否在startPoint和endPoint之间啊?
兔子-顾问 2010-11-08
  • 打赏
  • 举报
回复
看这个做参考,你可能就明白自己想要什么了。

源码下载
http://www.codeproject.com/KB/macros/pocketuml.aspx
边城的刀声 2010-11-08
  • 打赏
  • 举报
回复

public class Line
{
public Point stratPoint;
pulibc Point endPoint;

public void Draw(Graphics g)
{
g.Drawline(startPoint,endPoint);
}

public Boolean IsSelected(PintF currentMousePoint)
{
//判断当前鼠标的点,是否在startPoint和endPoint之间,以判断它是否选中了
}

pulbic Boolean Select(Graphics g)
{
g.DrawRectange();//画个小矩形,以表示当前线被选中了
g.DrawLine();
g.DrawRectangle() //画个小矩形,以表示当前线被选中了
}
}

public class MyForm : Form
{
public List<Line> drawedLines;

public void OnMouseMoving(e)
{
foreach(Line line drawedLines)
{
//判断哪条线被选中了
//再重新画线,长度不变
}
}
}
兔子-顾问 2010-11-08
  • 打赏
  • 举报
回复
你需要记录下这条线的2个端点,矢量图形拾取还容易点,初中几何有点是否在线上的公式,GIS算法中有高效判断方法。绘制之前没记录线的端点你可以拾取但不能挪动。
kisstome88 2010-11-08
  • 打赏
  • 举报
回复
bloodish
能再说明白一点吗,谢谢
wl_851110 2010-11-08
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/graphics/drawtools.aspx
窗体上放的是诸如椭圆、图标、矩形等GDI+ 绘制的图形, 当在某一个图元上点右键出现一个下拉菜单,有属性修改的操作。同时当点了该图元时,该图元选中,表示可缩放状态,根据鼠标的位置显示鼠标的样式如南北、东西、东南等。并可直接拖拽修改。
bloodish 2010-11-08
  • 打赏
  • 举报
回复
不存在图元的概念,需要你自己封装


class Line
{
public PointF BeginPoint { get; set; }
public PointF EndPoint { get; set; }

public void Draw(Graphics g)
{
//g.DrawLine.....
}
public bool Contains(PointF mousePt)
{
//计算点和直线的距离,判断直线是否被选中
return true;
}
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧