在VC中,单文档下,任意画一条直线,怎么求他的 斜率啊?哪位有代码,谢谢???
解决方案 »
- Ado连接内存清理问题讨论
- 真心求教一个new、delete的问题
- 窗口背景图片
- (MFC)为什么使用完选择路文件径函数后(就是弹出那个选择文件的窗口)不了shellexecute的??
- 【100】救命啊,找不到MFC80UD.DLL
- 请教CStdioFile读写中文乱码的问题
- 怎麼用oledb com api使用 ADO 呢? 程序執行不過 pConn->Open(......)
- 256色工具栏无法显示
- 分析截获数据包(进来看一下啊)
- 烦!散分!!!
- 怎样才能识别图片上的字符?
- 各位高手,小弟想将创建的窗口始终保持最上面, 是所有窗口的最上面,即使打开了象Window任务管理器这样的窗口,我的窗口也要在它的上面(即使我的窗口没激活
{
if(pt2.x == pt1.x)
return 0; return (pt2.y - pt1.y)/(double)(pt2.x - pt1.x);
}斜率是不是这样定义的,我不是很确定了。
1、 鼠标记录的点坐标肯定是CPoint数据,也就是int型,你可以自己建一个类
Class myPoint
{
public:
float x ;
float y ;
float error;
}2、 每次记录鼠标位置,保存两种数据,一种CPoint , 一种myPoint , 当用于绘制所画直线时,使用CPoint数据,当用于计算斜率时,使用myPoint数据(如果用于精密计算方面,理论上应该记录的是myPoint坐标,LZ所得的CPoint坐标是转换后的结果)3、 斜率可能存在,也可能不存在,排除特殊情况
但要注意:pt2.x-pt1.x很小的情况,也就是基本上与Y轴平行的直线,斜率无穷大。
实际上你用cpoint 也可以解决问题了,因为起始两个点的位置是精确的,只是如果两个整数直接除得到的也是整数,可以先把它们强制转换为浮点数,然后就可以了。