График функции на черепахе - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно построить график функции f1 (x) для черепахи.Мне нужно начать с х = -7 и двигаться вперед .01, пока я не достигну х = -3.Мне также нужно использовать масштабный коэффициент 25

Я создал цикл for в основной функции.Когда я иду к координатам (i, i) и иду вперед .01, тогда рисуется диагональная линия, но когда я заменяю второй i на f1 (i), тогда ничего не происходит.

def f1(x):
    return 2 * sqrt((-abs(abs(x)-1)) * abs(3 - abs(x))/((abs(x)-1)*  (3-abs(x)))) * \(1 + abs(abs(x)-3)/(abs(x)-3))*sqrt(1-(x/7)**2)+(5+0.97* (abs(x-0.5)+abs(x+0.5))-\3*(abs(x-0.75)+abs(x+0.75)))*(1+abs(1- abs(x))/(1-abs(x)))
def main():
    wn=turtle.Screen()
    wn.bgcolor("white")
    wn.title("plotting")
    draw=turtle.Turtle()
    draw.fillcolor("black")
    draw.speed(10)
    draw.penup()
    scale=25
    for i in range(-700,-300,1):
        draw.goto(((i/100)*scale),((f1(i)/100)*scale))
        draw.pendown()

Я не совсем уверен, что должно быть нарисовано, потому что это то, что мы должны выяснить, но сейчас ничего не рисуется, все, что происходит, когда я бегу, это окно черепахиоткрывается.

1 Ответ

0 голосов
/ 15 февраля 2019

Я считаю, что принудительное встраивание кода в range() может вызвать больше проблем, чем оно того стоит, и простой цикл while может иногда оказаться подходящим:

from math import sqrt
from turtle import Screen, Turtle

SCALE = 25

def f1(x):  # long line broken up based on where parentheses balance
    return 2 * \
        sqrt((-abs(abs(x) - 1)) * abs(3 - abs(x)) / ((abs(x) - 1) * (3 - abs(x)))) * (1 + abs(abs(x) - 3) / (abs(x) - 3)) * \
        sqrt(1 - (x / 7) ** 2) + \
        (5 + 0.97 * (abs(x - 0.5) + abs(x + 0.5)) - 3 * (abs(x - 0.75) + abs(x + 0.75))) * \
        (1 + abs(1 - abs(x)) / (1 - abs(x)))

wn = Screen()
wn.title("plotting")

draw = Turtle()
draw.speed('fastest')
draw.penup()

i = -7.0

while i < -3.0:
    draw.goto(i * SCALE, f1(i) * SCALE)
    draw.pendown()

    i += 1.0 / 100

wn.exitonclick()

Похоже, работает так жедля меня под Python 3 или Python 2.

...