Fastik26
04.06.2023 03:45

помагите как рисовать это в питоне


помагите как рисовать это в питоне

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
mashanlo2006
14.02.2022 10:00

import turtle

from math import tan, sqrt, pi

def prepare(x, y, color):

   turtle.penup()

   turtle.goto(x, y)

   turtle.pendown()

   turtle.color(color)

   turtle.begin_fill()

def draw_polygon(num_sides, side_length):

   angle = 360.0 / num_sides

   for i in range(num_sides):

       turtle.forward(side_length)

       turtle.right(angle)

   turtle.end_fill()

def calc_s(num_sides, side_length):

   return num_sides * side_length ** 2 / (4 * tan(pi/num_sides))

def calc_side(square):

   return sqrt(4 * square * tan(pi/num_sides) / num_sides)

turtle.hideturtle()

turtle.speed(10)

colors = ['red', 'green', 'blue', 'cyan', 'magenta', 'black', 'yellow', 'pink', 'brown']

xcoords = [0, 150, -150, 150, -150, 270, -270, 270, -270]

ycoords = [0, 150, -150, -150, 150, 270, -270, -270, 270]

squares = []

numsides = []

for i in range(9):

   num_sides = i + 3

   square = round(calc_s(num_sides, 100), 2)

   side_length = round(calc_side(10000), 3)

   squares.append(square)

   numsides.append(num_sides)

   print("Углов:", num_sides, "была площадь:", square, "стала длина грани:", side_length,

         "изменение в", round(side_length/100, 2), "раз")

   prepare(xcoords[i], ycoords[i], colors[i])

   draw_polygon(num_sides, side_length)

turtle.exitonclick()

print("Список количество углов:", numsides, end="")

print("Список площади:", squares)

Объяснение:

0,0(0 оценок)
Ответ:
djsxv
20.02.2022 12:01

На строке 9 "if x>=-7.5 and x<2 then y:=(a*sqrt(abs(x+6))); " в том месте, где выделено жирным, компилятор думает, что необходимо произвести побитовое умножение числа с плавающей точкой типа real -7.5 и целого числа x. Т.к. побитовое умножение применимо только к целым числам, компилятор пытается преобразовать -7.5 к целому числу, т.е. к integer, и у него это не получается, о чем он Вам и говорит.

Чтобы он не думал, что Вы собираетесь производить побитовое умножение (ведь Вы хотите произвести логическую операцию между результатами двух сравнений), нужно занести в скобки выражения x>=-7.5 и x<2, чтобы получилась такая строка: "if (x>=-7.5) and (x<2) then y:=(a*sqrt(abs(x+6))); "

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота