发布
2011年3月13日 (最后更新: 2011年3月13日)

沿着线移动

评分: 3.4/5 (40 票)
*****
许多人都知道什么是线,更多的人可以使用斜率来绘制它们。 但是我注意到,当尝试仅使用起点和终点来绘制一条线时,人们会绊倒并失败。

问题很简单:如何在没有具体的 x 和 y 坐标的情况下绘制一些东西?

答案也很简单:找到它们。

让我们想象一下,您希望将一个对象从原点 (0,0) 移动到某个终点 (8,20)。 好吧,人类会简单地意识到 (8, 20) 转化为 2/5 的斜率(向上 2,向右 5),并相应地绘制线条。 不幸的是,计算机没有可以用来绘制线条的尺子。 所以这个人被迫告诉计算机线经过的每一个点。 这很容易做到。 在这个例子中,我们向上和向右移动。 所以,我们已经有了 Y 坐标。 它们是 1 到 20 的点。

但是如何得到 X? 这很容易,X 是 Y 的函数。 像这样:X=(X1/Y1)*Y

为了更好地理解

X= X1 * Y
__Y1

在这个等式中,X1 是 8(目标点的 X 坐标),Y1 是 20(目标点的 Y 坐标)。 至于 Y,只需代入 1 到 20 即可得到它的 X 坐标。

程序示例看起来像这样

1
2
3
4
5
6
7
8
9
10
11
float X1=8, Y1=20;
     float x[20], y[20];
     for (int i=1; i<21; i++)
     {
         y<i>=i;
         x<i>=(X1/Y1)*y<i>;
     }
     for (int i=1; i<21; i++)
     {
         cout<<"y["<<i<<"]="<<y<i><<" x["<<i<<"]="<<x<i><<endl;
     }


这将创建以下输出

y[1]=1 x[1]=0.4
y[2]=2 x[2]=0.8
y[3]=3 x[3]=1.2
y[4]=4 x[4]=1.6
y[5]=5 x[5]=2
y[6]=6 x[6]=2.4
y[7]=7 x[7]=2.8
y[8]=8 x[8]=3.2
y[9]=9 x[9]=3.6
y[10]=10 x[10]=4
y[11]=11 x[11]=4.4
y[12]=12 x[12]=4.8
y[13]=13 x[13]=5.2
y[14]=14 x[14]=5.6
y[15]=15 x[15]=6
y[16]=16 x[16]=6.4
y[17]=17 x[17]=6.8
y[18]=18 x[18]=7.2
y[19]=19 x[19]=7.6
y[20]=20 x[20]=8