Найти - Пользователи
Полная версия: turtle нарисовать цилиндр с пунктиром
Начало » Python для новичков » turtle нарисовать цилиндр с пунктиром
1
Silent0agent
Нарисуйте объемное изображение цилиндра, как показано на схеме.

Вводятся:
радиус большой дуги овала(r), высота(h), цвет контура и цвет заливки.
Толщина контура 2 пикселя, при рисовании пунктирной линии пропуски и дуги чередуются через 9 градусов на малых дугах и через 4.5 на большой.

Я не понимаю как нарисовать овал и пунктир. Можете хотя бы сделать сам овал и овал с пунктиром без задаваемых значений, но чтобы их можно было подставить.
py.user.next
Функцию отсюда взял
https://barzunov.ru/2019/11/turtle-draw-ellipse/

Чуть переделал функцию (добавил пунктир)
  
#!/usr/bin/env python3
 
import turtle
import math
 
 
def ellipse(a, b, color='black', fill=''):
    """
    This function draws an ellipse.
    """
    dx = turtle.xcor()
    dy = turtle.ycor()
    turtle.color(color, fill)
    turtle.begin_fill()
    for deg in range(361):
        rad = math.radians(deg)
        x = a * math.sin(rad) + dx
        y = -b * math.cos(rad) + b + dy
        turtle.goto(x, y)
        if y > b:
            if deg % 10 == 0:
                turtle.penup()
            if deg % 10 == 5:
                turtle.pendown()
        else:
            turtle.pendown()
    turtle.end_fill()
 
ellipse(250, 90)

Думаю, на дугах там тоже можно сделать, но для этого непрерывное рисование дуг надо разделить на куски. Тогда какие-то куски можно будет проходить с поднятым пером просто.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB