借问各位牛人大哥,有什么式子可以解出2点形成的XY线之间有什么点?
好似(16,16)<->(14,18) 中间的点就是 (15,17)
(16,16)<->(16,18) 中间的点就是 (16,17)
,恳求完整代码。谢谢

解决方案 »

  1.   

    CPoint fanqing(CPoint p1,CPoint,p2)
    {
    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为以知的两个点随便写写,仅供参考,没测试过
      

  2.   

    double x,y;x=(x1+x2)/2;
    y=(y1+y2)/2;
      

  3.   

    如果你是求两点之间的中点的话,
    double x,y;
    x=(x1+x2)/2;
    y=(y1+y2)/2;
    就可以解决问题,如果是直线上的任意点,可以先根据两点得到直线方程,然后代入任何一个变量,便可求出上面的点
      

  4.   


    就是按照斜率来计算
    (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));
         }
    }
      

  5.   

    你这个问题时计算机图形学中的经典问题直线bresenham算法。另外还有中点法。 代码实现很简单,主要是思想。