Baum zeichnen

from turtle import *
# Deklaration einer Zeichenprozedur
def baum(stamm):
    if ...:
        forward(stamm)
        ...
# Test der Zeichenprozedur
left(90)
baum(200)

Wie soll man daraus ein Baum zeichnen ?

? :wink:

Edit: Hier braucht man viel Fantasie und Raterei… Etwas mehr Kontext wäre schön, sonst hat das schon fast den Charakter eines IQ-Tests…

Ich kenne die Bibliothek nicht, aber von Turtle-Grafik sollte man eigentlich schon gehört haben: Turtle-Grafik – Wikipedia

Es handelt sich um turtel Grafik
Steuerung einer Schildkröte

Turtle-Grafik basiert auf der Vorstellung, dass eine Schildkröte mit bestimmten Anweisungen auf einer Zeichenfläche bewegt wird und dass die Schildkröte dabei eine Spur hinterlässt.

Typische Anweisungen zur Steuerung der Schildkröte sind:

  • stift_hoch
  • stift_runter
  • gehe_vorwaerts(betrag)
  • gehe_rueckwaerts(betrag)
  • drehe_dich_nach_links(winkel)
  • drehe_dich_nach_rechts(winkel)
  • gehe_zu_punkt(punkt)

Ähnlich wie bei deinen letzten Fragen, auch hier: Wie soll eine Antwort auf die Frage aussehen, die nicht daraus besteht, dass jemand den fertigen Code postet, den du brauchst? (Wobei da noch viel Raten dabei wäre, weil du zu wenige Details angegeben hast…)

1 „Gefällt mir“

Mehr Infos hab ich auch nicht. Ich muss irgendein baum machen, Hauptsache man erkennt das

baum

Ne, Spaß beiseite. Man müsste wissen, welche Funktionen die turtle-Lib. beinhaltet… Ich kann nicht riechen, welche, und der Link von Landei erklärt das Prinzip, jedoch nicht die spezielle Lib. Von daher kann ich damit nix anfangen.

Btw. Harald Lesch hatte neulich eine interessante Sendung über mathematische Formen, die überall in der Natur vorkommen (Bögen, Kreise, Spiralen, Verhältnisse aufeinanderfolgender Fibonacci-Zahlen beim Goldenen Schnitt, etc.)

eyyy… :smirk: aber schöner baum haha :joy: :joy: :joy:

also damit ist das gemeint:

# Python program to draw a tree using turtle
# Importing required modules
import turtle
import math


# Function to draw rectangle
def drawRectangle(t, width, height, color):
    t.fillcolor(color)
    t.begin_fill()
    t.forward(width)
    t.left(90)
    t.forward(height)
    t.left(90)
    t.forward(width)
    t.left(90)
    t.forward(height)
    t.left(90)
    t.end_fill()


# Function to draw triangle	
def drawTriangle(t, length, color):
    t.fillcolor(color)
    t.begin_fill()
    t.forward(length)
    t.left(135)
    t.forward(length / math.sqrt(2))
    t.left(90)
    t.forward(length / math.sqrt(2))
    t.left(135)
    t.end_fill()


# Set the background color
screen = turtle.Screen ( )
screen.bgcolor("skyblue")


# Creating turtle object
tip = turtle.Turtle()
tip.color ("black")
tip.shape ("turtle")
tip.speed (2)


# Tree base
tip.penup()
tip.goto(100, -130)
tip.pendown()
drawRectangle(tip, 20, 40, "brown")


# Tree top
tip.penup()
tip.goto(65, -90)
tip.pendown()
drawTriangle(tip, 90, "lightgreen")
tip.penup()
tip.goto(70, -45)
tip.pendown()
drawTriangle(tip, 80, "lightgreen")
tip.penup()
tip.goto(75, -5)
tip.pendown()
drawTriangle(tip, 70, "lightgreen")

ist ja jetzt ein baum haha, aber wie muss ich das eigentlich machen, damit der baum zufällig groß und zufällig irgendwo auf dem bildschirm verteilt wird? und diese dreiecke müssen bis obenhin immer kleiner werden, hab die alle 3 ja jetzt gleich groß :sweat_smile: und wie kann der benutzter dann selbst die anzahl der bäume eingeben, die auf dem bildschirm plaziert werden soll? :see_no_evil:

Danke dir, jetzt hab ich eine Vorstellung davon… :wink:

Das Zeichnen geht so:

# Python program to draw a tree using turtle
# Importing required modules
import turtle
import math


def drawTree(t, x, y, width, height):
    t.penup()
    t.goto(x, y)
    t.pendown()
    drawRectangle(t, width / 5, height / 5, "brown")
    t.penup()
    h = 0
    for i in range(5):
        w = width - i * (width / 6)
        x2 = x - w / 2 + width / 10
        y2 = y + height / 5 + h / 2
        t.goto(x2, y2)
        t.pendown()
        drawTriangle(t, w, "lightgreen")
        t.penup()
        h = h + math.sqrt(math.pow(w / 2, 2))
    t.goto(x, y)


# Function to draw rectangle
def drawRectangle(t, width, height, color):
    t.fillcolor(color)
    t.begin_fill()
    t.forward(width)
    t.left(90)
    t.forward(height)
    t.left(90)
    t.forward(width)
    t.left(90)
    t.forward(height)
    t.left(90)
    t.end_fill()


# Function to draw triangle
def drawTriangle(t, length, color):
    t.fillcolor(color)
    t.begin_fill()
    t.forward(length)
    t.left(135)
    t.forward(length / math.sqrt(2))
    t.left(90)
    t.forward(length / math.sqrt(2))
    t.left(135)
    t.end_fill()


# Set the background color
screen = turtle.Screen()
screen.bgcolor("skyblue")


# Creating turtle object
tip = turtle.Turtle()
tip.color("black")
tip.shape("turtle")
tip.speed(1.75)


# Tree base
drawTree(tip, +100, -100, 200, 500)
drawTree(tip, -100, -100, 100, 300)

Ich hab mich des Höhensatzes des Euklid bedient. :smile: (Irre, was die alten Mathematiker schon wussten :frowning: )

Also das Ergebnis sollte dann so sein:

Animation_Baum

Jetzt musst du dir eben nur noch überlegen, zufällig viele Bäume an zufälligen Stellen zu zeichnen…

ja also zufällig geht ja mit random, weiß nur nicht wie genau & der benutzter muss die anzahl der bäume auch selbst eingeben

Das bekommst du schon hin, denke ein bisschen nach :wink: Zur Not kann ich auch später mal schauen. lg