现在需要在picturebox中用鼠标左键点击一系列点,并按顺序连接起来,然后双击鼠标左键按下最后一个点弹出对话框以求得距离
解决方案 »
- 循环多线程返回值获取
- 输入23.45,如何得到23,做到只要整数部分
- 关于转换数字金额为大写的方法
- txt转换成Mdb文件
- 非常简单的索引器问题(出现未实例化异常)
- 请做过C3+ORACLE的朋友进来解决问题
- 在Webfrom里用水晶报表,在网页里加入了一个时间控件,水晶报表的打印就没用了?怎么办?急~~~在线等~~~顶着有分
- C#中什么方法能够直接将json字符串转换为HashMap?
- 自定义菜单项,如何才能作出没有浮雕效果的菜单,就像vs.net一样的2d边框
- 高分
- Form 中有个按钮,点击按钮会在 Form 上增加一个 pictureBox 。如何能够拖拽这个新增加的 pictureBox
- axWebBrowser 中 如何激发网页中的按钮
private Point org=Point.Empty;
private double distance = 0;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (org == Point.Empty)
{
org = e.Location;
}
else
{
this.distance += this.GetDistance(org, e.Location);
path.AddLine(org, e.Location);
this.org = e.Location;
this.pictureBox1.Invalidate();
}
}
} private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawPath(Pens.Red, this.path);
} private double GetDistance(Point pt1, Point pt2)
{
int h= pt1.X - pt2.X;
int v = pt1.Y - pt2.Y;
return Math.Sqrt(h * h + v * v);
} private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
MessageBox.Show(this.distance.ToString());
this.path = new System.Drawing.Drawing2D.GraphicsPath();
this.org = Point.Empty;
this.distance = 0;
}
但还是有一个非常低效的求面积方法(而且精度差),就是在另一个BITMAP里面填充这个Path,然后用测点颜色的方式求面积.