Mit Schildkrötengrafiken kann die Parabelkurve nicht korrekt gezeichnet werdenPython

Python-Programme
Anonymous
 Mit Schildkrötengrafiken kann die Parabelkurve nicht korrekt gezeichnet werden

Post by Anonymous »

Ich mache ein Spiel wie „Angry Bird“.

Es gibt zwei Eingaben: Kraft und Winkel.
Ich wende diese Eingaben auf eine Parabelkurve an.

Meine Schildkröte fliegt und macht eine Parabelkurve. und meine Schildkröte muss das Ziel treffen,
aber meine Schildkröte zeichnet eine seltsame Kurve, wenn der Winkel größer als 46 ist, der Winkel 30, 40 usw. beträgt...

Ich weiß nicht, wo das Problem liegt....hier ist mein Code:

Code: Select all

import turtle
import random
import math

g=9.80665
origin_x=-480
origin_y=-180
flag=False

def create_target():

x=random.randint(0,500)
y=random.randint(-200,0)
target=turtle.Turtle()
target.hideturtle()
target.penup()
target.goto(x,y)
target.shape('square')
target.color('red')
target.showturtle()
return target

def create_turtle():

homework=turtle.Turtle()
homework.hideturtle()
homework.penup()
homework.speed(0)
homework.goto(origin_x,origin_y)
homework.pendown()
homework.shape('turtle')
homework.color('blue')
homework.left(45)
homework.showturtle()
return homework

def setting():
'''drawing back ground lines'''
setting=turtle.Turtle()
setting.hideturtle()
setting.speed(0)
turtle.colormode(255)
setting.pencolor(214,214,214)

for y in range(100,-101,-100):
setting.penup()
setting.goto(-500,y)
setting.pendown()
setting.goto(500,y)

for x in range(-375,500,125):
setting.penup()
setting.goto(x,200)
setting.pendown()
setting.goto(x,-200)

def throw_turtle(turtle,target):
angle=int(input("Enter Angle:"))
power=int(input("Enter Power:"))
'''
parabola fomula:
x coordinate: speed(in here, that is power) * cos(anlge)*time
y coordinate: speed*sin(angle)*time - (gravity speed*time**2)/2
'''
for time in range(1,20):
# the origin fomula is for the situation that starts from (0,0). so I think
# I should  compensate it, but is it right?
x=power*math.cos(angle)*time + origin_x
y=power*math.sin(angle)*time - (((time**2)*g)/2) + origin_y
if x

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post