如果问题比较简单,请谅解。此为本人毕业课题:
如果存在一副有扫描仪扫好的曲线图,如何取得其各点的坐标?
如果存在一副有扫描仪扫好的曲线图,如何取得其各点的坐标?
解决方案 »
- 又升级了,散200分
- edit和sql问题
- 怎样把一个date型的数据update到dbf表中?
- 如何隐藏rave报表的*.rav项目文件,写入exe或者dll文件。up有分。见者有分。不够再补。
- 简单问题,大家帮帮忙,解决就马上给分
- DaysBetween的使用,在线等!
- 如何使没有最大化的窗体紧贴任务栏显示?
- 请教,dbcombobox的下拉列表中怎么没有下拉项显示啊?
- 小弟刚学delphi,怎样从一个文件夹拷贝文件到另外一个文件夹
- 如何把当前窗口中listview1的item.caption付给另一个窗口的caption,并且选择另一个item时,另一个窗口的caption也跟着变!谢谢!
- 大家来帮帮忙!在线等!!!
- 千万别进来!!!!!!!!!!
坐标的建立、度量单位(应该是动态建立坐标,根据用户需要把坐标建立在什么地方而定。)
问题:如何取点 (通过色差判断?)
TCanvas.Pixels属性是一个二维数组,它的每个元素代表窗体表面或客户区的一个像素的TColor值。
窗体左上角的像素为:Canvas.Pixels[0,0];
而右上角为:Canvas.Pixels{clientwidth,clientheight}
一般情况下,很少需要访问窗体的单个像素,因此通常不需要用到Pixels属性,用它太慢了。如果使用GetPixel()和SetPixel()来访问像素,Microsoft也承认这两个函数有缺陷,效率不高,因为这两个函数都依赖于24位的R B值。如果不是24位R G B设备,当把R G B转换为设备像素格式时会出现颜色匹配失真。为了快速地操纵像素,可以使用TBitmap.Scanline数组。如果只是要一次获得或设置一两个像素,可使用Pixels属性。
Win32坐标系统与任何其他坐标系统没有什区别。指定了一个点的X、Y坐标,Win32就在绘图表
面定位这个点。Win32使用3种坐标系统,分别是设备、逻辑和通用坐标系。Windows 95不支持通用坐标系(位图旋转、裁剪、扭曲等)设备坐标系设备坐标系是指Win32运行于的设备。它以像素为单位进行度量,定位方向是水平轴从左右、垂直轴从上到下增加。例如,如果在640×480的显示器上运行Windows,设备左上角坐标为(0,0),而右下角坐标为(649,479)。逻辑坐标系在Win32中,有设备环境(或称DC)的区域通常使用逻辑坐标系。设备坐标系与逻辑坐标系的区别稍后解释。我们先从屏幕、窗体、窗体的客户区开始。
屏幕坐标系
屏幕坐标系是指显示设备,因此它是以像素为度量单位的坐标系,在6 4 0×4 8 0的显示器上,Screen.Width和Screen.Hight分别为640和480像素。要获取屏幕的设备环境,可以使用Win32 API中的GetDC()函数。相应地,必须调用RaleaseDC()函数来释放所获取的设备环境。窗体坐标系窗体坐标系也叫窗口坐标系,指整个窗体或窗口,包括标题栏和边框。Delphi5没有直接提供访问绘图区域DC的属性(不知现在有没有),但可以通过使用Win32 API中的GetWindowsDC()函数来获得DC。例如:MyDC: = GetWindowDC(Form1.Handle) ;这个函数返回指定窗口的设备环境。注意可以通过TCanvas对象来操纵由GetDC()和GetWindow()所获得的设备环境,进而通过设备环境来调用TCanvas的方法。你只要创建一个TCanvas实例,然后把GetDC()GetWindowsDC()的结果赋给TCanvas.Handle属性。这个方法可行,因为TCanvas拥有这个句柄,当画布对象释放时将释放该设备环境。窗体的客户区坐标是指窗体的客户区域,其设备环境为窗体画布的Handle特性,其尺寸可以由Canvas.ClientWidth和Canvas.ClientHeight获得。
非常感谢!
可否给个联系方式?QQ:434856