Python 复平面绘图

Python 复平面绘图

前言

在学校太闲,就写了这个程序,可以在复平面绘制曲线,画圆什么的很轻松,f(z) = e^(1j * z),螺旋线,函数图象等都可以。

效果图

说明

此程序使用turtle绘图,可以用作画函数图像,假设你想画函数g(x)的图像,那么就输入f(z) = z + 1j * g(z),g(z)是含z的表达式。
表达式可支持Python math库,random库,time库的所有函数,具体使用方法请自行探索。

代码

# Python 2.x

import turtle
from random import *
from math import *
from time import *

def printf(f):
    global z
    turtle.goto(f.real * 20, f.imag * 20)
    print("f(" + str(z) + ") = " + str(f))
    z += d

def format(s):
    s = s.replace("^","**")
    return s

def evale(s):
    n = eval(s)
    return n

delay = input("delay = ") * 1e-3
turtle.setup(1280, 720)
turtle.speed(10)
turtle.pensize(2)
turtle.goto(-640, 0)
turtle.goto(640, 0)
turtle.goto(0, 0)
turtle.goto(0, 360)
turtle.goto(0, -360)
turtle.goto(0, 0)

while True:
    express = format(raw_input("f(z) = "))
    d = input("d = ")
    min = input("min = ")
    max = input("max = ")
    z = min
    f = evale(express)
    turtle.pencolor(random(), random(), random())
    turtle.penup()
    printf(f)
    turtle.pendown()

    while  z < max:
        f = evale(express)
        printf(f)

注意

这个程序使用Python 2.x,若需要Python 3.x的程序,请自行修改。

猜你喜欢

转载自blog.csdn.net/hk_shao/article/details/80142733