请帮忙看看这个画线的问题...急..........在线等......

lxcy 2004-07-31 04:05:28
根据给出的四个点,在picturebox上画一条真值线,
想了好久也没有办法,能否给个算法或思路?
...全文
171 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2004-07-31
  • 打赏
  • 举报
回复
对了,顺便说一句,如果楼主在调用的时候写成:
DrawData GetDC(0),10,Picture1.ScaleHeight\2,5,2
试试看,呵呵,画到屏幕上去了,而不是画在你的程序中。
熊孩子开学喽 2004-07-31
  • 打赏
  • 举报
回复
给你一段代码吧,是我以前用过的.
说明一下:假设数据放在Data数组内,Data数组的长度根据实际大小ReDim
子程序DrawData的参数依次为:
HDC :要进行绘画的对象句炳
X0,Y0 :在对象上绘制图像的起点坐标,
XRatio,YRatio :水平比例和垂直比例
调用方法示例:DrawData Picture1.hdc,10,Picture1.ScaleHeight\2,5,2

Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long

Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
dim Data() as long
...
Sub DrawData(HDC as long, X0 as long,Y0 as long,XRatio as single,YRatio as long )
Dim I as long
dim Xb as long
dim Yb as long
dim Xe as long
Dim Ye as long
Xb=X0
Yb=Y0
For I = lbound(Data) To ubound(Data)
Xe = X0 + Int(I * XRatio)
Ye = Y0 + Int(Data(I) * YRatio)
MoveToEx HDC, Xb, Yb, Null
LineTo HDC, Xe, Ye
Xb = Xe
Yb = Ye
Next
End sub

使用XRatio和YRatio是因为,一般我们绘图都是以像素(Pixel)来计算的,而你实际采集的数据则可能非常大,也可能非常小,可能非常多,也可能非常少。为了使最后画出的曲线能够显示在一个范围之内,必须在X和Y方向加两个比例值。楼主应该明白我的意思吧。
熊孩子开学喽 2004-07-31
  • 打赏
  • 举报
回复
使用线性拟合的方法。
楼上所说的最小二乘法比较适合用在点比较少的情况下,如果数据比较多的话(几万个),那速度就非常慢了。
我作过一个类似的程序,有16K的点,将每个点取前后各一定数量(1,2,3...)的点进行加权平均。得到的波形就比较光滑了。(就是图像处理中的高斯虑波)
进行加权平均的点越多,光滑程度越好,速度也就越慢,总的形状误差也越大。

如果楼主只是需要画出连续的线条而不不要平滑的话,
可以使用一个现成的API:Polyline
Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
该API可以根据给定的坐标结构数组画出一条连续曲线。
northwolves 2004-07-31
  • 打赏
  • 举报
回复
刚写的代码,看看能不能用:

http://blog.csdn.net/northwolves/archive/2004/07/31/57507.aspx
efengxu 2004-07-31
  • 打赏
  • 举报
回复
最好在picturebox里画线,用line画很容易,把你的四个值转换成你在picturebox里相对应的值
zyl910 2004-07-31
  • 打赏
  • 举报
回复
《计算机图形学》\三次样条插值\自然三次样条

推导与构造都比较复杂(牵涉到导数和线性代数),你自己买书看算了
Geo_Cra 2004-07-31
  • 打赏
  • 举报
回复
楼上正解……
但是我不会最小二乘……
northwolves 2004-07-31
  • 打赏
  • 举报
回复
最小二乘法取回归线
lxcy 2004-07-31
  • 打赏
  • 举报
回复
这样还有一个斜率的问题,感觉太复杂了.还有没有其他想法?
liuyan4794 2004-07-31
  • 打赏
  • 举报
回复
如果这些点分布在线段的两端,平均就可以
否则,用一个算法,求出一条线段,使得所有的点最靠近这条直线
lxcy 2004-07-31
  • 打赏
  • 举报
回复
现在做的是量测的软件,需要量测影像,因为影像模糊,所以在量直线的时候需要取多个点,这样就能准确一点.但是在取多个点后,这个直线怎么画,在下就不明白了,请高手指点.谢谢!!!!!!!!!1
liuyan4794 2004-07-31
  • 打赏
  • 举报
回复
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long
Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Sub Command1_Click()
MoveToEx Picture1.hdc, 10, 10, ByVal 0&
LineTo Picture1.hdc, 1000, 1000
End Sub
northwolves 2004-07-31
  • 打赏
  • 举报
回复
两点确定一条直线!
zyl910 2004-07-31
  • 打赏
  • 举报
回复
详细点

应该只是坐标计算问题
免费试听地址:B站搜索JeeGit观看《JeeSite4.x数据权限教程》、《JeeSite1.2.7系列基础教程》、《JeeSite4.x系列基础教程》等相关课程! 郑重声明:购课前,认真听完第一章 课程简介 建议实战人群直接听:第九章、第十章 学生人群、刚入门:全听       数据权限主要讲解内容包含第一章 课程简介31.1 课程目标31.2 适用人群31.3 课程简介31.4 环境要求31.5 课程知识点大全31.6 课程售价31.7 购课声明31.8 资源清单31.9 售后方式41.10 讲师介绍4第二章 权限基础42.1 权限模型概述4第三章 JeeSite权限管理模型123.1 JeeSite1.2.7 权限管理模型123.2 JeeSite4.x 权限管理模型123.3 JeeSite4.x权限设计的扩展13第四章 用户管理144.1 JeeSite4.x内置用户类型144.1.1 用户管理思路144.1.2 网站会员、员工、单位、个人登录视图配置154.2 用户数据权限类型164.3实战训练、调试、日志查看16第五章 机构管理16第六章 角色管理186.1 JeeSite4.x角色管理概述186.2 JeeSite4.x越级授权与菜单权重186.3 JeeSite4.x 越级授权可能存在的隐患极其解决方案196.4用户表如何区分非管理员、系统管理员、二级管理员206.5 角色权限注意事项206.6 角色授权数据范围使用注意事项216.7 为何用户不设置员工权限无效?236.8 岗位管理与角色分类的岗位分类与角色分类有何区别?23第七章 二级管理员23第八章 系统管理员238.1 系统管理员238.2 总结:何时使用超级管理员、系统管理员、二级管理员?23第九章 Jeesite数据权限调用239.1 JeeSite4.x数据调用基础239.2 JeeSite4.x 实现数据列权限推荐解决方案249.3多数源模式下数据权限bug简易解决方案249.4 JeeSite4.x 自定义扩展数据权限249.5支持全球地区、全球企业、全球机构、全球部门授权24第十章 JeeSite数据权限实战2410.1 案例一2410.2 案例二2410.3 案例三2510.4 案例四2510.5 案例五25第十一章 JeeSite4.x常见问题解答251.1数据权限管理的代码会公开吗,购买了能看吗?251.2 JeeSite数据权限教程是Thinkgem录制的吗?25第十二章 参考阅读2612.1、JeeSite官方文档2712.2、美国国家标准与技术研究院2712.3、中国国家标准化管理委员会2712.4、ITSEC欧洲安全评价标准2812.5、百度学术2812.6、开源框架2912.6.1 JeeSite2912.6.2 Casbin2912.6.3 Eladmin2912.6.4 Spring-boot-demo2912.6.5 Jeeplatform3012.6.6 Pig3012.6.7 Jeecg-boot3012.6.8 Jfinal3012.6.9 Guns3112.6.10 Zheng3112.6.11 Cloud-Platform3112.7 博文资源31

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧