标记坐标问题(200分)

  • 主题发起人 主题发起人 xxxxxxx
  • 开始时间 开始时间
X

xxxxxxx

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一副印制版的线路图,象计算机主板那样,有许多线路,上面有
许多小圆点和线,我想通过程序自动为小圆点的中心标上坐标,并标记它们
之间的距离.多谢指教.
 
获得小圆点位置最难,可以偷懒,
写个程序让你用鼠标点击每一个小圆点。
获得每个点击坐标很容易(mousedown事件中x,y属性)
然后标记很容易canvas.textout;
计算距离很简单了。
 
weihang错,我要的是厘米或是毫米单位,不是象素,还有要自动,如果是手动我也不会问了.
 
你是电脑上的图吧,厘米怎么可能有意义!
分辨率不同同一辐图厘米数也不同了。
作一下简单的计算,象素——》厘米,不就完了。
自动的就得问是什么图了,用数码相机拍的还就是电脑设计虚拟的?
拍的我以为没希望了。
虚拟的还有分析的余地。
 
比较笨的方法:
1。必须保证小圆点能编程识别,可以通过象素的颜色来确定,这里图是关键,
我估计你的图是用印制板软件做的,应该没问题,
2。确定小圆点的颜色,线的颜色,其它区域的颜色,这一步只能手工做,把图加载到窗体上,
单击小圆点,用 TForm.Canvas.Pixels,得到小圆点的颜色,然后拟一个确定小圆点的算法,
例如某个象素点和上下前后10个像素的颜色相同,就可以认为它是小圆点的中心,等等。
3。标记小圆点,有了上一步,这一步就简单了,把图加载到窗体上,对象素依次判断,
是小圆点就在旁边用 canvas.textout 输出坐标就可以了。
 
940801,说的有道理,理论我知道,我现在想知道具体的算法,或是哪里有现成的构件望各位
指教.
 
setvieportextex(canvas.handle,mm_lometric)
0.1毫米
 
看一下
http://www.truevcl.com中的TCAD控件,可以标注长度,
其中有个参数1pixel=?inch或?mm
 
setvieportextex(canvas.handle,mm_lometric)
中间还有两个参数,是用来做什么的?
 
noal说错了.

那种参数调用是SetMapMode的.

SetViewPortExtEx的四个参数分别是:
DC, 新宽度, 新高度, 用来接受原来尺寸的TSize结构
 
多人接受答案了。
 

Similar threads

回复
0
查看
813
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部