首页 > 解决方案 > 为什么程序会增加 x 和 y 的值,即使它们更大,那么它们应该是?

问题描述

我正在制作一个程序,它移动一个点,从 startx,starty 到 endx,endy。但它连续移动,即使在 x 和 y 大于 endx 和 endy 之后。这是代码:

int x, y;
            x = startx; y = starty;
            if(startx<goalx){
                if (starty < goaly) {
                    while (startx < goalx || starty < goaly) {
                        x += sqrt(2)*speedx;
                        y += sqrt(2)*speedy;
                    }
                }
                else {
                    while (startx < goalx || starty > goaly) {
                        x += sqrt(2)*speedx;
                        y -= sqrt(2)*speedy;
                    }
                }
            }
            else {
                if (starty < goaly) {
                    while (startx > goalx || starty < goaly) {
                        x -= sqrt(2)*speedx;
                        y += sqrt(2)*speedy;
                    }
                }
                else {
                    while (startx > goalx || starty > goaly) {
                        x -= sqrt(2)*speedx;
                        y -= sqrt(2)*speedy;
                    }
                }


            }
            cout << x << ", " << y << endl;

startx、starty、goalx 和goaly 是用户输入。

标签: c++coordinatesmoveinfinity

解决方案


控制结构依赖于startxstarty但这些永远不会改变。据说x应该y使用。


推荐阅读