懇求简单几何公式代码? 借问各位牛人大哥,有什么式子可以解出2点形成的XY线之间有什么点?好似(16,16)<->(14,18) 中间的点就是 (15,17)(16,16)<->(16,18) 中间的点就是 (16,17),恳求完整代码。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CPoint fanqing(CPoint p1,CPoint,p2){CPoint mymy.x=(p1.x+p2.x)/2;my.y=(p1.y+p2.y)/2;return my;}CPoint zj=fanqing(pp1,pp2);//zj为中间点,pp1,pp2为以知的两个点随便写写,仅供参考,没测试过 double x,y;x=(x1+x2)/2;y=(y1+y2)/2; 如果你是求两点之间的中点的话,double x,y;x=(x1+x2)/2;y=(y1+y2)/2;就可以解决问题,如果是直线上的任意点,可以先根据两点得到直线方程,然后代入任何一个变量,便可求出上面的点 就是按照斜率来计算(x1,y1)是开始点,(x2,y2)是结束点,公式如下:int GetPointY( int PointX ){ int y = (int)(((y2-y1)/(x2-x1))*(PointX-x1)); return y;}但是,还有一个问题,就是要考虑垂直线的问题,所以要改成如下形式:int GetPointY( int PointX ){ if ( x1 == x2 ) { ... // 这里就是处于y1和y2两点之间的所有点,他们的横坐标相同,都是x1(或者x2) } else { return (int)(((y2-y1)/(x2-x1))*(PointX-x1)); }} 你这个问题时计算机图形学中的经典问题直线bresenham算法。另外还有中点法。 代码实现很简单,主要是思想。 如何获取光标左侧的字符串长度 求助一个很难实现的问题 有没办法快速创建并且填充大文件 问一个C++在windows 下读取excel的问题? 摄像头拍照有时不成功. 求助:wsprecv函数中缓冲区数据输出问题 取得datagrid控件中当前所选行的纪录 困扰了我一个星期我感觉要崩溃了,为什么有这种事. 要求程序在socket 和stdin上进行无阻塞的操作 输入问题? 在SDK中,添加toolbar 一个概念问题,MFC高手请进
{
CPoint my
my.x=(p1.x+p2.x)/2;
my.y=(p1.y+p2.y)/2;
return my;
}CPoint zj=fanqing(pp1,pp2);//zj为中间点,pp1,pp2为以知的两个点随便写写,仅供参考,没测试过
y=(y1+y2)/2;
double x,y;
x=(x1+x2)/2;
y=(y1+y2)/2;
就可以解决问题,如果是直线上的任意点,可以先根据两点得到直线方程,然后代入任何一个变量,便可求出上面的点
就是按照斜率来计算
(x1,y1)是开始点,(x2,y2)是结束点,公式如下:int GetPointY( int PointX )
{
int y = (int)(((y2-y1)/(x2-x1))*(PointX-x1));
return y;
}但是,还有一个问题,就是要考虑垂直线的问题,所以要改成如下形式:int GetPointY( int PointX )
{
if ( x1 == x2 )
{
... // 这里就是处于y1和y2两点之间的所有点,他们的横坐标相同,都是x1(或者x2)
}
else
{
return (int)(((y2-y1)/(x2-x1))*(PointX-x1));
}
}