python畫任意多邊形,Python多邊形

本文目錄一覽:

如何在python語言中輸出任意的多邊形

from PIL import Image

from PIL import ImageDraw

a=Image.new(‘RGB’,(200,300))

# 畫布 200×300

m=ImageDraw.Draw(a)

m.polygon([(20,20),(35,140),(180,166)],fill=0xff00ff)

a.show()

# polygon 多邊形,n個坐標即n邊,上-三角形,下-四邊形

m.polygon([(20,20),(35,140),(180,166),(180,20)],fill=0xff00ff)

怎麼用python畫一個十三邊形

可以用turtle很簡單的畫一個等邊形,包括十三邊行,具體實現在這裡 用python中的turtle庫實現畫一個任意邊的等邊形

在python中turtle繪製正七邊形

① 以定長R為半徑作圓,並過圓心O作互相垂直的縱橫兩條直徑MN、HP. ② 過N點任作一射線NS,用圓規取七等分,把端點T與M連結起來,然後過NT上的各點推出MT的平行線,把MN七等分. ③以 M為圓心,MN為半徑畫弧,和PH的延長線相交於K點,從K向MN上各分點中的偶數點或奇數點(圖中是 1、3、5、7各點)引射線,與交於A、B、C、M.再分別以 AB、BC、CM為邊長,在圓周上從A點(或M點)開始各截一次,得到其他三點,把這些點依次連結起來,即得近似的正七邊形. 這種畫法適用畫圓內接任意正多邊形.

總結用python繪製正多邊形的規律?

如果能夠找到規律,可以讓代碼變得更簡單。上述代碼中其實就是調用circle()函數四次,每次傳入參數不同而已。

我們可以加入循環,循環就是重複不停地做相同的事情;再找到循環變量和畫圓參數之間的規律即可。

第一個圓的半徑為50,每次按15的節奏遞減,直到繪製完半徑為5的圓。這樣就可以使用range()函數,傳入如下參數:range(50,0,-15)。

或者由小到大繪製,傳入這樣的參數也可以:range(5,51,15)。

還可以這樣:循環四次,循環變量i依次為0、1、2、3,再在繪製圓的過程中構造遞減的表達式:100/2-i*15。

分析這個表達式,當i等於0時,結果為50,繪製半徑為50的圓;當i等於1時,結果為35,繪製半徑為35的圓……正好符合題目要求的參數值。

【擴展】思考如何繪製以坐標原點為中心的同心圓呢?

仔細觀察畫筆繪製圓的軌跡,可發現:默認小海龜從坐標原點出發,逆時針旋轉一圈畫圓;然後,再回到起始點。

所以,繪製同心圓。我們需要將畫筆向下移動一定的距離,即改變y的坐標,x坐標保持不變為0。參考代碼如下:

循環體內,每次需要抬筆和落筆功能。

02

案例二:繪製一個正多邊形

繪製正多邊形有這樣一個結論:用360°去除以繪製的邊數,即可得到旋轉角度。

比如:正三角形的旋轉角度(360/3=120°)、正四邊形的旋轉角度(360/4=90°)、正八邊形的旋轉角度(360/8=45°)。其他以此類推。

那麼,我們要繪製一個正八邊形呢?

使用循環結構,循環八次。每次前移一定距離,再旋轉(360/邊數)的角度,這裡旋轉的就是45°角。參考代碼如下:

有了這樣的結論,其他的正多邊形都可以信手拈來,小菜一碟了。只需要稍微改幾個參數即可。

03

案例三:繪製由多種顏色組成的正螺旋線

比如,這樣的圖形:

這是由八種顏色組成的正八邊形螺旋線結構圖,顏色依次為:紅(red)、綠(green)、藍(blue)、黃(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八種。

繪製思路:

首先,需要創建一個顏色列表list,含有八種顏色元素。

第二,前移一定距離,這個距離值是由小到大逐級遞增的過程。

第三,旋轉一定角度,可參照案例二的結論。

最後,考慮畫筆的顏色,每8次(邊數)為一個周期循環顏色列表。

參考代碼如下:

其他的正螺旋線,也是如此規律。

【擴展】如果是有一定旋轉角度的螺旋線呢?比如,這樣的圖形:

解題思路:只需要在正螺旋線的基礎上,讓旋轉角度多偏移1-2°即可。修改上述案例中最後一行的代碼:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245768.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:11
下一篇 2024-12-12 13:11

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python for循環求1到100的積

    Python中的for循環可以方便地遍歷列表、元組、字典等數據類型。本文將以Python for循環求1到100的積為中心,從多個方面進行詳細闡述。 一、for循環語法 Pytho…

    編程 2025-04-29

發表回復

登錄後才能評論