c++ - 为什么程序会增加 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 是用户输入。
解决方案
控制结构依赖于startx
,starty
但这些永远不会改变。据说x
应该y
使用。
推荐阅读
- amazon-web-services - 使用 RDS 后端修改 AWS Amplify 中的解析器
- html - 在 mat-card 上绑定 Datepicker 事件
- typescript - TS2367:此条件将始终返回“假”与任何
- java - 向数据集添加一个新列并使用 Java spark 从数组中的值填充它
- azure - luis.ai 上的订阅密钥无效
- python - 如何在 Python 中读取 PowerPoint 幻灯片的特定文本
- c# - XmlWriter 不允许我在编写命名空间时忽略 LocalName
- python - 如何在自己的线程中运行扭曲的 webapps 而不是使用 twistd
- c - c中的arccos(不使用acos)
- c - C 中的数组问题(带有函数,例如 set_array)