我一直在寻找一段时间如何使用Java中的Turtle填充具有特定颜色的形状。 假设我有这样的事情:
private static void test(Turtle t1) {
for (int count = 0; count < 4; count++) {
t1.fd(100);
t1.right(90);
}
}
t1
的位置:Turtle t1 = new Turtle();
上面的代码创建了一个简单的矩形,我想弄清楚的是如何用颜色(红色,绿色,蓝色)填充该矩形。我已经查看了这个link中的文档但到目前为止我无法弄明白。
感谢。
答案 0 :(得分:2)
我已经看到了更有用的方法,例如begin_fill
,然后&#34;为 Turtle Graphics 和end_fill
>在 Python 中,似乎 Java 实现的工作方式不同,但我相信我已经实现了您所需要的(但我不确定是否会这样做&#39虽然是最好的方法但是我同意你的观点,我无法找到有关此问题的信息,您提供的link中描述的方法与来自 Java 代码中的 Turtle 对象。为什么?因为您的 Turtle 对象正在使用fd
方法向前推进,而提供的文档说明有forward
方法可以执行此操作(请确保您正在使用正确的库,在我的情况下我使用jturtle-0.1.1.jar
,并且这些方法对于OP中的代码片段是准确的。
Java代码:
package com.turtle.main;
import java.awt.Color;
import ch.aplu.turtle.Turtle;
public class TurtleMain {
public static void main(String[] args) {
Turtle turtle = new Turtle();
// Init config
turtle.setColor(Color.RED);
turtle.setPenColor(Color.BLUE);
turtle.setFillColor(Color.GREEN);
// Draw rectangle
for (int count = 0; count < 4; count++) {
turtle.fd(100);
turtle.right(90);
}
// Fill rectangle
turtle.fill(1, 1);
}
}
因此,当使用fill
方法(制作技巧)时,你会发现其中一个没有参数,另一个期待 X 和 Y 坐标。
从Turtle类中获取:
/** Fills the region the Turtle is in.
A Region is bounded by lines
of any other color than the background color and by the border of
the Window. <br>
@return the turtle to allow chaining.
*/
public Turtle fill(){
getPlayground().fill(this);
return this;
}
/** Fills the region with coordinates <code>x</code> and <code>y</code>.
A Region is bounded by lines
of any other color than the background color and by the border of
the Window. <br>
@return the turtle to allow chaining.
*/
public Turtle fill(double x, double y){
double oldX = getX();
double oldY = getY();
boolean hidden = isHidden();
ht().setPos(x,y);
getPlayground().fill(this);
setPos(oldX, oldY);
if(!hidden){
st();
}
return this;
}
但是,当我仅调用fill()
时,它不起作用,但在X=1
方法中指定Y=1
和fill(x, y)
时,它可以正常工作(可能很好调试核心方法以查看发生了什么?)无论如何,我没有这样做但是在使用上面的代码时,这是输出: