Tell us what’s happening:
It is asking me to reutrn the coordinates list but I have already returned the list tho. I dont get it. Can you guys help me stupid ass? TT
Your code so far
import math
GRAVITATIONAL_ACCELERATION = 9.81
PROJECTILE = "∙"
x_axis_tick = "T"
y_axis_tick = "⊣"
class Projectile:
__slots__ = ('__speed', '__height', '__angle')
def __init__(self, speed, height, angle):
self.__speed = speed
self.__height = height
self.__angle = math.radians(angle)
def __str__(self):
return f'''
Projectile details:
speed: {self.__speed} m/s
height: {self.__height} m
angle: {round(math.degrees(self.__angle))}°
displacement: {round(self.__calculate_displacement(), 1)} m
'''
def __calculate_displacement(self):
horizontal_component = self.__speed * math.cos(self.__angle)
vertical_component = self.__speed * math.sin(self.__angle)
squared_component = vertical_component**2
gh_component = 2 * GRAVITATIONAL_ACCELERATION * self.__height
sqrt_component = math.sqrt(squared_component + gh_component)
return horizontal_component * (vertical_component + sqrt_component) / GRAVITATIONAL_ACCELERATION
def __calculate_y_coordinate(self, x):
height_component = self.__height
angle_component = math.tan(self.__angle) * x
acceleration_component = GRAVITATIONAL_ACCELERATION * x**2 / (
2 * self.__speed**2 * math.cos(self.__angle)**2)
y_coordinate = height_component + angle_component - acceleration_component
return y_coordinate
# User Editable Region
def calculate_all_coordinates(self):
coordinates = []
for _x in range(math.ceil(self.__calculate_displacement())):
y = self.__calculate_y_coordinate(_x)
coordinates.append((_x, math.ceil(y)))
return coordinates
ball = Projectile(10, 3, 45)
print(ball)
coordinates = ball.calculate_all_coordinates()
print(coordinates)
# User Editable Region
Your browser information:
User Agent is: Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
Challenge Information:
Learn Encapsulation by Building a Projectile Trajectory Calculator - Step 7