95分全送给大家了,去年在CSDN问了半年没有解决,今天碰碰运气:)(95分)

  • 主题发起人 主题发起人 小角色
  • 开始时间 开始时间

小角色

Unregistered / Unconfirmed
GUEST, unregistred user!
需求很简单
1.按住鼠标左键不放在窗体中画线
2.释放鼠标左键立即判断是否是画或者任何几何体
3.hough算法可以吗?怎么实现?
4.多元非线性回归可以吗?怎么实现?
 
只知道第一个 (其他的不清楚) 可以在鼠标 几个事件写点代码
一、按下,则记录‘原始点坐标’,并且设全局变量downed为true,表示鼠标状态
二、抬起,则设全局变量downed为false,表示鼠标状态为抬起
三、移动,首先判断downed是否true,是的话则表示在‘拖拽’,则祛除上次移动时候
画的线,然后画当前点到目前鼠标所在的点之间的线段,ok!
还有个地方需要注意,就是还要两个全局变量来表示前次移动时候画的线的目标点坐标。
这样在下次画的时候才能搽除。 (实际是用底色再画一次)
 
建立一个数组,记录每条线的坐标,数组元素可以是对象也可以是简单的坐标记录,橡皮筋效果要用异或方式处理,例子多的是
 
“例子多的是 ”给我几个好不好
 
可能大家没有理解我的意思,橡皮筋效果很好做,但不是我需要的,要智能判断线是不是圈,这需要算法
 
判断画出的东西接近于圆,或者正方形等
 
我拿笔在纸上走那么一圈,你怎么知道我要画的是园还是画椭圆还是画方还是在画一个64边型?
连你人都不知道的事机器更不可能知道了。
所以这个问题纯粹是在和自己过不去。
 
由一个点开始,判断它相邻的点和它的关系,
遍历所有有关系的点
如果回到原点,就说明是个封闭的图形
 
这问题确实是太BT了[:(!]
 
问题已经搞定,谢谢帮助过我的人,特别感谢HouSisong。现把答案公布需要源代码的留下联系方式:)

检测圆的简要算法:

输入数据:鼠标坐标点数组 X[],Y[],数组长度N

算法:

1。求出圆心点坐标(X0,Y0):分别累加x,y轴坐标然后除以数组长度N;

2。计算所有点到(X0,Y0)的平均距离(半径)R;

3。计算所有点到半径为R的圆的直线距离的均方差D

如果D小于某个值可以认为是圆

方差这个概念是刻画波动大小的一个重要的数字。与平均数一样,仍然采用样本的波动大小去估计总

体的波动大小的方法,方差越小则波动越小,稳定性也越好。

应当注意:①方差公式s2=[(x1-)2+(x2-)2+…+(xn-)2]中有差、方、和、均四步运算。差是

减法,方是平方,和是加法,均则为除法,就是求差、方的平均值,这也是“方差”的由来。

对号的算法:
找出Y轴最大值的点,作为两条直线的分割点。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部