【问题标题】:Drawing a Fractal Tree by Processing通过处理绘制分形树
【发布时间】:2015-06-04 06:07:35
【问题描述】:

我想在处理中绘制分形树,但我不知道如何制作。我的想法是画一棵二叉树。但是这棵树必须有更多的树枝。而且我不知道如何编码。请帮帮我,谢谢。现在我画了一个 2D 树,但我的老板让我把它改成 3D。这是我的代码,我不知道如何制作它。我是一个新人处理编程。请帮帮我。

void tree(float treeLength, float strokeWeight, int currentTreeStep)
{
    if (currentTreeStep < maxTreeSteps) {

        if(currentTreeStep >= 8 && currentTreeStep <=10)
            stroke(#558351); //set color light green
        else{
            if(currentTreeStep >10 && currentTreeStep <=20)
                stroke(#199B0E); //set hard green        
            else{
                stroke(#311919);//set branch color
            }
        }
        strokeCap(PROJECT);
        strokeWeight(strokeWeight);
        line(0, 0, 0, -treeLength);  
        translate(0, -treeLength);

        strokeWeight *= 0.5;
        treeLength *= 0.75;

        if (treeLength > 1) {
            pushMatrix();
            rotate(radians(branchAngle));
            tree(treeLength, strokeWeight, currentTreeStep + 1);
            popMatrix();

            pushMatrix();
            rotate(-radians(branchAngle));
            tree(treeLength, strokeWeight, currentTreeStep + 1);
            popMatrix();
        }  
    }
}

【问题讨论】:

  • 其中哪一部分给您带来了麻烦?你的MCVE 在哪里?请注意,Processing 编辑器附带了大量示例,其中包括几个关于分形树的示例。
  • 感谢您的帮助,我已经通过 Google 修复了 2D 树。但是如何将其更改为 3D 存在问题。

标签: java image-processing recursion processing fractals


【解决方案1】:

一般来说,从 2D(主要是三角函数)转移到 3D(线性代数:向量和矩阵乘法)并不像人们想象的那么直观。

看看我参加的其中一门课程中的example

希望您也能看到 3D 矩阵乘法部分的实际应用

【讨论】:

  • 我在处理过程中运行了你的代码,但它无法运行,我修复了一些问题,它无法运行。我必须将 Vector 更改为 PVector,但编译器说“方法 get(类型 Pvector 中的 float[]) 不适用于参数 (float)"(我在处理 3.0a5 中运行它)。我更改了我的代码。 for (int i = 0; i
  • @WangYao Vector 指的是java.util.Vector,大致是一个可调整大小/动态的数组。请不要用 PVector 替换它。只需添加这一行:import java.util.Vector;。处理 2.0 和更新版本删除了对 java.util.* 的导入,这就是您收到错误的原因
  • 非常感谢,我在您的指导下修复了它。再次感谢您。很抱歉我的声誉没有达到 15。我无法为您的答案投票。非常抱歉。
  • @samgak,谢谢,我接受了。感谢您的帮助。
  • 我在处理过程中遇到问题,你能回答这个问题吗,谢谢。这是我的Problem
猜你喜欢
  • 2019-01-09
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多