首页 新闻 会员 周边

GDI+是否能实现角度的测量

0
悬赏园豆:10 [已解决问题] 解决于 2014-04-01 10:31

GDI+是否能实现点击鼠标点击三点就能测量三点的夹角度数。或者有什么其他技术能实现吗?

愿得一博友的主页 愿得一博友 | 初学一级 | 园豆:38
提问于:2014-02-13 16:08
< >
分享
最佳答案
0

不能,你需要自己实现,很简单,记录下三点的坐标,然后用 Math.Sin,Math.Cos,Math.Tan 来计算。

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2014-02-13 16:36

好的,谢谢,正在解决中...我在网上看到一个例子,但是只有后台代码,您能帮我猜测下dot1、dot2、dot3是什么控件吗?本人刚接触CS,别取笑我。。

 1 public Form2()
 2         {
 3             InitializeComponent();
 4         }
 5 
 6         int Dotter = 0;
 7         public int Distance2D(int x1, int y1, int x2, int y2)
 8         {
 9             int result = 0;
10             double part1 = Math.Pow((x2 - x1), 2);
11             double part2 = Math.Pow((y2 - y1), 2);
12             double underRadical = part1 + part2;
13             result = (int)Math.Sqrt(underRadical);
14             return result;
15         }
16         private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
17         {
18             if (Dotter == 1)
19             {
20                 dot1.Visible = true;
21                 dot1.Location = e.Location;
22                 Dotter = 2;
23             }
24             else if (Dotter == 2)
25             {
26                 dot2.Visible = true;
27                 dot2.Location = e.Location; Dotter = 3;
28             }
29             else if (Dotter == 3)
30             {
31                 dot3.Visible = true;
32                 dot3.Location = e.Location;
33                 Dotter = 4;
34             }
35             else if (Dotter == 4)
36             {
37                 dot1.Visible = false;
38                 dot2.Visible = false;
39                 dot3.Visible = false;
40                 Dotter = 1;
41             }
42             anglesize.Text = Convert.ToInt32(Distance2D(dot1.Location, dot2.Location, dot3.Location)).ToString();
43         }
44 
45         private void button1_Click(object sender, EventArgs e)
46         {
47             Dotter = 1;
48         }
愿得一博友 | 园豆:38 (初学一级) | 2014-02-13 16:39

@愿得一博友: 看他的代码,好像是用了控件来在图片上显示一个鼠标单击的点,那么最容易的实现的就是用 Label 控件,也可能是他自绘制的控件。

Launcher | 园豆:45045 (高人七级) | 2014-02-13 17:35

@Launcher: 用控件来在图片上显示一个鼠标单击的点,不错呀,那后台如何获取鼠标点的这个对象啊?

愿得一博友 | 园豆:38 (初学一级) | 2014-02-14 09:14

@愿得一博友: 这3个控件(比如Label或者自己写的控件),如果你要简单可以先创建好但是隐藏, 把他们放数组里, 鼠标点击的时候在点击事件参数里获得点击坐标, 然后修改一个控件的Location属性并设置为显示,就像代码中一样.  你要计算的时候使用控件的Location属性,里面有x和y坐标.  坐标有了自然也就可以算出角度了.

快乐永远 | 园豆:218 (菜鸟二级) | 2014-02-14 09:25

@快乐永远: 好呀,太好了~

愿得一博友 | 园豆:38 (初学一级) | 2014-02-14 09:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册