稍微介紹下python庫之Turtle

來源:互聯網
上載者:User

Turtle乃龜的意思,最初屬於logo語言的(沒玩過)..不過後來也有別的語言支援.其一是SmallBasic,其二就是Python.一直不知道這個庫竟然是Python內建的.它是基於Tk庫的.

用起來很簡單.

from turtle import *

即可.

簡單畫線.

其中reset()是將整個畫布清空並講烏龜(箭頭)置於原點(畫布的中心). goto(70,0) 是根據當前的狀態(速度,顏色,是否畫線 ... )運動到(70,0)點上.

turtle的座標系跟我們學習的座標系一樣.很好學習.

下面我們來畫個正方形.很簡單.

就是前進(fd)一段距離,右轉(right)90度,反覆4次即可.

當然畫任意的邊形都可以.改變角度就好了,當然也可以順便改下長度,如下

好了簡單介紹到這裡了,還有更多的功能可以查手冊了.

或者更多的Demo看 http://code.google.com/p/python-turtle-demo/

下面來看一小例子,分形.當然經典的Mandelbrot看爛了,換點別的.葉子的構造.

方法很簡單.乘法迭代.不過不是單一的迭代而是根據機率迭代.每次的結果都以座標畫在圖片上.

代碼來自於.http://www.mathworks.cn/moler/intro.pdf 不過原始代碼是Matlab寫的,我這裡改成Python的.其中用到了Numpy庫,主要用於矩陣乘法,其實自己寫個一不困難的.

調試時發現A*x在Numpy中有別的含義,要使用dot(A,x).代碼如下:

from  numpy import *from random import randomimport turtleturtle.reset()x = array([[.5],[.5]])p = [0.85,0.92,0.99,1.00]A1 = array([[.85,  0.04],            [-0.04,.85]])b1 = array([[0],[1.6]])A2 = array([[0.20,-0.26],            [0.23,0.22]])b2 = array([[0],[1.6]])A3 = array([[-0.15,0.28],            [0.26,0.24]])b3 = array([[0],[0.44]])A4 = array([[0,0],            [0,0.16]])turtle.color("blue")cnt = 1while True:    cnt += 1    if cnt == 2000:        break        r = random()    if r < p[0]:        x = dot(A1 , x) + b1    elif r < p[1]:        x = dot(A2 , x) + b2    elif r < p[2]:        x = dot(A3 , x) + b3    else:        x = dot(A4 , x)    #print x[1]    turtle.up()    turtle.goto(x[0][0] * 50,x[1][0] * 40 - 240)    turtle.down()        turtle.dot()

注意下其中匯入.numpy.dot 和 turtle.dot 是有衝突的.

結果如下.

牙,好難看..

Matrix67句句也學過關於這個的文章 http://www.matrix67.com/blog/archives/500 

好了睡覺..

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.