Найти - Пользователи
Полная версия: Помогите совсем новичку
Начало » Python для новичков » Помогите совсем новичку
1 2 3
Dlubochanin
Черепаха и вписанные многоугольники.
  import turtle
import math
def nugolnik(x):
    for i in range(x):
        sin=math.pi/x
        shag=10*x*2*math.sin(sin)
        s=180*(x-2)
        turtle.left(180-s/x)
        turtle.forward(shag)
def otstup(t):
    turtle.penup()
    turtle.forward(10)
    turtle.pendown()
turtle.shape('turtle')
b=3
while b<=20:
    s=180*(b-2)
    turtle.left((s/b)/2)
    nugolnik(b)
    turtle.right((s/b)/2)
    otstup(b)  
    b+=1
turtle._root.mainloop()
Romanteg
rami
перед рисованием сторон нужно развернуть “черепашку” на половину внутреннего угла между сторонами (у треугольника 3 угла по 60° — разворачиваем на 30°, у квадрата 4 угла по 90° — разворачиваем на 45°, и т.д., это нужно посчитать), после завершения фигуры разворачиваем “черепашку” обратно на этот угол.
Привет.
У меня здесь была проблема.
Т.е. каким-то образом я сообразил, что нужно ее поворачивать перед рисованием следующей фигуры на определенное количество градусов в одну и в другую сторону.
Но как найти этот угол вообще не понимал, пробовал подставлять числа.
Треугольник и квадрат нормально рисовались, а дальше шло со смещением… воспользовался формулой (180-360/n)/2. Правда почему надо поворачивать на половину внутреннего угла … непонятно …
Добавил ее в угол поворота и вроде бы заработало… вот мое решение:

Упражнение №9: правильные многоугольники
 import turtle
import math
n = 3
z = 0
a = 360 / n
line = 50
def triangles():
    turtle.shape("turtle")
    turtle.pendown()
    turtle.left(a)
    turtle.forward(line)
def move():
    turtle.penup()
    turtle.goto(z,0)
for c in range(10):
    turtle.left((180-360/n)/2)
    for c in range(n):
        triangles()
    turtle.right((180-360/n)/2)
    n += 1
    z += 15
    line += 5
    a = 360 / n
    move()

televizor1945
white
А кто подскажет как шестое упражнение сделать? Вообще идей нету)
Просто нужно посмотреть, какой шаг у архимедовой спирали: он равен 2 * pi
Затем посмотреть какой угол поворота: википедия выдаёт 1 радиан (примерно 57 градусов)
И я так полагаю, что все данные найдены)

m=2 * pi
while m < 200:
turtle.circle(m, 57);
m+= 2 * pi
Ilyxa1998
Ух, конечно и задача
Тоже промаялся с ней 4 дня)
Сначала писал вместо np.sin(np.pi/n) np.sin(180/n) и понятно, что ничего не получалось, радиус вообще отрицательный был) Потом еще долго маялся с углами, пока не нарисовал рисунок и осознал, что угол не 180/2n, а есть специальная формула в зависимости от фигуры. В итоге всё таки написал требуемую функцию, вроде работает)
 import turtle
import numpy as np
turtle.shape('arrow')
turtle.speed(1)
def right_figure(n):
    a = 30
    R = n*a/(2*np.sin(np.pi/n))
    R_1 = (n+1)*a/(2*np.sin(np.pi/(n+1)))
    turtle.color('red')
    turtle.left(180*(n-2)/(2*n) )
    for i in range(n):
        turtle.left(360/n)
        turtle.forward(a*n)
    turtle.penup()
    turtle.right(180*(n-2)/(2*n))
    turtle.forward(R_1 - R)
    turtle.pendown()
for n in range(3,10):
    right_figure(n)
UserizPosada
у меня вот как получилось решить задачу о 10 вложенных квадратах

 import turtle
t = turtle.Turtle()
t.shape('turtle')
t.speed(10)
x = 10
for z in range(10):
    for i in range(4):      
        t.forward(x)
        t.left(90)
    t.penup()
    t.backward(5)
    t.right(90)
    t.forward(5)
    t.left(90)
    t.pendown()
    x += 10
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