D dearchen Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-13 #1 现在我有一跟直线,我要在它上面书写它的长度,应该如何精确定位书写的那个点呢? 我要求它能随着我的直线角度的变化而变化,即总是在我线的上面。
K knight Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-13 #2 建议用一个image来表示吧。否则似乎不好解决。 直线角度变化时旋转image可达到效果 至于,定位点可选择的就多了,可以根据直线的中心或其他因素来决定
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-13 #3 记录那个点不要用像素, 用毫米或者1/10毫米记录, 旋转后用三角函数求出X, Y的坐标 的毫米值, 再转成像素值(因为像素不是正方型的, 所以这样做的精度比直接记录像素 高)
N noall Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-15 #4 another_eyes; 请问这样求出的X,Y的坐标值,在转 成像素值,应该什么转化??? 在画布上得到的X,Y值,是以什么为单位的,应该不是以像素为单位。在得到这个值后转 为以像素为单位应该如何转化呢(比例多少)。
another_eyes; 请问这样求出的X,Y的坐标值,在转 成像素值,应该什么转化??? 在画布上得到的X,Y值,是以什么为单位的,应该不是以像素为单位。在得到这个值后转 为以像素为单位应该如何转化呢(比例多少)。
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2000-09-16 #5 x := GetDeviceCaps(Canvas.Handle, LOGPIXELSX); // pixels per inch (2.54 cm) y := GetDeviceCaps(Canvas.Handle, LOGPIXELSY); CanvasX := Round(x * YourSavedX / 254); // 如果你保存的是1/10毫米 canvasY := Round(y * YourSavedY/ 254);
x := GetDeviceCaps(Canvas.Handle, LOGPIXELSX); // pixels per inch (2.54 cm) y := GetDeviceCaps(Canvas.Handle, LOGPIXELSY); CanvasX := Round(x * YourSavedX / 254); // 如果你保存的是1/10毫米 canvasY := Round(y * YourSavedY/ 254);