当前位置: 首页 > 知识库问答 >
问题:

Java中使用Turtle填充形状的颜色

马和硕
2023-03-14

我一直在寻找一段时间,现在在如何填补一个形状与一定的颜色使用乌龟在java。假设我有这样的东西:

private static void test(Turtle t1) {

    for (int count = 0; count < 4; count++) {
        t1.fd(100);
        t1.right(90);
    }

}

其中t1是:turtlet1=new-Turtle()

上面的代码创建了一个简单的矩形,我想弄清楚的是如何用颜色(红色、绿色、蓝色)填充这个矩形。我看了这个链接中的留档,但到目前为止我还不明白。

谢谢


共有1个答案

冯驰
2023-03-14

我见过更有用的方法,如begin_fill然后做某事和end_fill在Python中的Turtle Graphics,似乎Java实现不同,但我相信我实现了你需要的(但我不确定如果这是最好的方法),但我同意你的观点,我找不到关于这个加号的信息,你提供的链接中描述的方法与Java代码中海龟对象中的方法不同。为什么啊?因为你的Turtle对象正在使用fd方法前进,而提供的留档说有一个前进方法可以这样做(确保你使用的是正确的库,在我的例子中,我使用的是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);
    }
}

因此,当使用填充方法(这是一个技巧)时,您将看到有一个没有参数,另一个需要X和Y坐标。

从海龟类获得:

  /** 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()时,它不起作用,但是当在fill(X,Y)方法中指定X=1Y=1时,它起作用(可以很好地调试核心方法以查看发生了什么情况?)无论如何,我没有这样做,但在使用上述代码时,这是输出:

 类似资料:
  • 我在这方面收效甚微。我想到的唯一一件事就是在我想要的圆所占的空间周围画出巨大的拱形,因为我很难计算出数学来。 编辑:为什么我不能填满整个图像,然后再画圆圈,因为圆圈里的不是单一的颜色,而是我想拍摄一张图像(任何图像,比如我自己的照片),并能够在图像中间的圆圈周围添加单一的颜色。所以,在画它之前,圆圈中间的东西就已经存在了,它不是由代码绘制的。

  • 我正在为一个家庭作业制作一个ms绘画风格的程序。在这个家庭作业中,你应该能够右键点击一个形状并在屏幕上移动它。填充的形状可以在形状内的任何地方右键单击,而未填充的形状则应在形状的边框上右键单击并选择。 我遇到的问题是,当我最初启动程序,绘制和未填充的形状,并尝试拖动它,它会拖动,但一旦我再次放下它,它的行为正确,变得不可拖动,所有未来未填充的形状都相应地行动。 TLDR:我希望所有填充的形状都是可

  • 现在,我当前的渲染代码如下: 着色器: 假设我想像JavaAWT一样,成功地填充这个形状。。。我该怎么做?(已经尝试使用GL_多边形,但它只填充整个O,我有一个填充圆,而不是O。也尝试使用jogamp glu的部分,但它只是没有渲染任何东西,不知道为什么)

  • 问题内容: 有人可以诊断我面临的问题吗?在运行演示时,您可以看到中间部分为空白,我需要填充整个区域。 提前谢谢了 问题答案: 多边形与自身相交。fillPolygon方法无法清楚地确定哪个点在哪个点以及哪个点在哪个点之外。从fillPolygon javadoc: 多边形内部的区域是使用偶数填充规则(也称为交替规则)定义的。 也许您可以将多边形分成三个单个的多边形。

  • 问题描述 (Problem Description) 如何使用Applet填充形状中的颜色? 解决方案 (Solution) 下面的示例演示了如何使用setColor()的填充颜色创建一个applet,使用Graphics类的fillRect()方法填充Rectangle中的颜色。 import java.applet.*; import java.awt.*; public class fill

  • 艺术离不开色彩,今天咱们来介绍一下填充颜色,体会一下色彩的魅力。 填充颜色主要分为两种: 基本颜色 渐变颜色(又分为线性渐变与径向渐变) 我们一个个来看。 填充基本颜色 Canvas fillStyle属性用来设置画布上形状的基本颜色和填充。fillStyle使用简单的颜色名称。这看起来非常简单,例如: context.fillStyle = "red"; 下面是出自 HTML4 规范的可用颜色