如何在java中移动现有多边形?
伙计们,伙计们。 高中Comp-Sci学生报告 现在我们正在做一些绘图和多边形的工作,其中一个挑战是让它以多种方式在屏幕上移动。(从左到右等)看,如果我懂这门语言,或者有能力在基础水平上学习这门语言,这就没有问题了。但是我们的老师只是交给我们一些环境和一些代码来复制、粘贴和查看,从长远来看,除了最基本的东西,这些都没有真正的帮助 所以,我的朋友们,我可以通过绘制点来制作一个多边形,如下所示:如何在java中移动现有多边形?,java,polygon,move,translate,Java,Polygon,Move,Translate,伙计们,伙计们。 高中Comp-Sci学生报告 现在我们正在做一些绘图和多边形的工作,其中一个挑战是让它以多种方式在屏幕上移动。(从左到右等)看,如果我懂这门语言,或者有能力在基础水平上学习这门语言,这就没有问题了。但是我们的老师只是交给我们一些环境和一些代码来复制、粘贴和查看,从长远来看,除了最基本的东西,这些都没有真正的帮助 所以,我的朋友们,我可以通过绘制点来制作一个多边形,如下所示: int xPoints[]={ xP*684/1000,xP*706/1000, xP*661/100
int xPoints[]={ xP*684/1000,xP*706/1000, xP*661/1000, xP*687/1000,
xP*735/1000,xP*760/1000, xP*723/1000, xP*713/1000,
xP*698/1000,xP*686/1000, xP*669/1000, xP*653/1000,
xP*639/1000,xP*639/1000, xP*641/1000, xP*648/1000};
int yPoints[]={ yP*354/1000, yP*354/1000, yP*472/1000, yP*472/1000,
yP*354/1000, yP*354/1000, yP*452/1000, yP*471/1000,
yP*487/1000, yP*498/1000, yP*503/1000, yP*504/1000,
yP*492/1000, yP*473/1000, yP*455/1000, yP*440/1000};
int numPoints=16;
但我无法在我的一生中弄清楚需要什么样的特定输入或代码才能使它移动。(我的意思是在屏幕上翻译)
任何能让我走上正轨的提示都将不胜感激。我没有办法独自解决这个问题
编辑:哇,是的,这是Java。我不知道IBM VisualAge,但如果你有任何绘图方法/循环,你应该增加xP以向右移动,减少xP以向左移动等等。例如,使用for循环。欢迎使用SO!你需要把它分解成几个小部分,你需要弄清楚怎么做。我想到的一些是
每一个都可能被进一步分解。通常,解决编程问题都是从这种思维开始的。当您尝试执行上述每一项操作以及您提出的任何其他操作时,请随时回来问更多问题。假设它是java.awt.Polygon,您看过吗
Polygon.translate(intdx,intdy)代码>
如果是其他类型的多边形,请检查是否有类似的方法。可能是for循环
for(int i=0;i<xPoints.length;i++)
xPoints[i]+=1;// shift 1 unit
for(int i=0;i<yPoints.length;i++)
yPoints[i]+=1;// shift 1 unit
for(inti=0;让我们稍微简化一下,从一个点开始。如果您最初在点(x,y)处绘制它,你会在左边做什么?嗨,我同意,很难弄清楚你需要在这里做什么。关于这个问题,你有没有得到任何其他信息?你能问你的老师这是什么编程语言吗?@TarynEast,Q被标记为Java,所以我想这就是语言。不过,澄清这一点会很好。啊,duh s我很抱歉。谢谢:)我们是想在Swing或AWT这样的图形环境中实现这一点吗?我不懂Java,但我了解如何改变xP来推动它。什么是for循环?编辑:还有,什么是draw/method循环?我如何利用它?for循环允许您重复一段代码,重复次数与您所说的完全相同。这是(int i=0;i<100;i++){xP++;}
的语法,这将使多边形移动到正确的100个位置(即像素),使多边形工作并移动,但我真正的麻烦是使其以类似动画的方式移动。(也就是说,当程序通过它的方法时,观察它的移动)那么问题是在draw方法内部调用循环,而您只看到最终结果。尝试在这个方法中只执行xP++操作,然后,每次调用draw()时,您都会看到它向右移动