前言
在學校太閑,就寫了這個程序,可以在復平面繪制曲線,畫圓什么的很輕松,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的程序,請自行修改。
以上這篇Python 復平面繪圖實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。