有些无限位分数,用Python Turtle来绘制无限小数位的图形,很好看
计算1/13,并画图
1/13, fd=20, s=400设计思路
1. 在python中引入大数Decimal,解决小数位数问题
2. 计算所需分数,转化为字符串并提取小数位
3. 在Turtle绘图中循环提取单小数位作为右偏方向
4. 以固定步长绘图,调整循环次数(即小数位),得到图形
注: 由于每单个位数字为0-9,即将360度分为10份,但是分数位可能为0,则可将单个位数字加1再除。
源代码如下:
import turtle as tu
# 小数位超长,引入大数,设置小数位
import decimal
from decimal import Decimal
decimal.getcontext().prec = 100
# 需要计算的分数
c = Decimal(1)/Decimal(7)
# 转化为字符串
str_c = str(c)
# 去掉各位和小数点
str_c = str_c[2:]
# 打印预览,控制台输出
print(str_c)
# turtle.setup(width=0.5, height=0.75, startx=None, starty=None),
# 参数:width, height: 输入宽和高为整数时, 表示像素;
# 为小数时, 表示占据电脑屏幕的比例,(startx, starty):
# 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
tu.setup(950,650,200,200)
# 设置画笔速度
tu.speed(0)
for i in range(len(str_c)):
# 循环依次读取小数点后的小数,加1再让360度除,防止分母为0
tu.right(360/(int(str_c[i-1])+1))
# 每次步长
tu.fd(20)
# 暂停程序,停止画笔绘制,但绘图窗体不关闭
tu.done()
计算1/7,并画图
画布改为:tu.setup(550,450,200,200)
1/7, fd=50, s=100
计算1/17,并画图
1/17, fd=50, s=500其小数位
058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176470588235294117647058823529411764705882
计算1/21,并画图
1/21, fd=10, s=5001/21小数位(500位)如下:
047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619047619048
1/1279, fd=10, s=5000
1/1279小数位(500位)如下:
00078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053166536356528537920250195465207193119624706802189210320562939796716184519155590304925723221266614542611415168100078186082877247849882720875684128225175918686473807662236121970289288506645817044566067240031274433150899139953088350273651290070367474589523064894448788115715402658326817826426896012509773260359655981235340109460516028146989835809225957779515246286161063330727130570758405003909304143862392494136043784206411258795934323690383111806098514464425332290852228303362001563721657544956997654417513682564503518373729476153244722439405785770132916340891321344800625488663017982799061767005473025801407349491790461297888975762314308053
1/2203小数位(500位)如下:
···
00045392646391284611892873354516568315932818883340898774398547435315478892419428052655469813890149795733091239219246482069904675442578302315024965955515206536541080344984112573763050385837494325919201089423513390830685428960508397639582387653200181570585565138447571493418066273263731275533363595097594189741261915569677712210621879255560599182932364956876985928279618701770313209260099863822060826146164321379936450295052201543349977303676804357694053563322741715842033590558329550612800726282342260553790285973672265093054925102133454380390376758965047662278710848842487517022242396731729459827507943713118474807081252837040399455288243304584657285519745801180208806173399909214707217430776214253290966863368134362233318202451202905129369042215161143894689060372219700408533817521561507035860190649114843395369950068088969586926917839310031774852473899228325011348161597821152973218338629142078983204720835224693599636858828869723104857013163867453472537448933272809804811620517476168860644575578756241488878801634135270086246028143440762596459373581479800272355878347707671357240127099409895596913300045392646391284611892873354516568315932818883340898774398547435315478892419428052655469813890149795733091239219246482069904675442578302315024965955515206536541080344984112573763050385837494325919201089423513390830685428960508397639582387653200181570585565138447571493418066273263731275533363595097594189741261915569677712210621879255560599182932364956876985928279618701770313209260099863822060826146164321379936450295052201543349977303676804357694053563322741715842033590558329550612800726282342260553790285973672265093054925102133454380390376758965047662278710848842487517022242396731729459827507943713118474807081252837040399455288243304584657285519745801180208806173399909214707217430776214253290966863368134362233318202451202905129369042215161143894689060372219700408533817521561507035860190649114843395369950068088969586926917839310031774852473899228325011348161597821152973218338629142078983204720835224693599636858828869723104857013163867453472537448933272809804811620517476168860644575578756241488878801634135270086246028143440762596459373581479800272355878347707671357240127099409895596913300045392646391284611892873354516568315932818883340898774398547435315478892419428052655469813890149795733091239219246482069904675442578302315024965955515206536541080344984112573763050385837494325919201089423513390830685428960508397639582387653200181570585565138447571493418066273263731275533363595097594189741261915569677712210621879255560599182932364956876985928279618701770313209260099863822060826146164321379936450295052201543349977303676804357694053563322741715842033590558329550612800726282342260553790285973672265093054925102133454380390376758965047662278710848842487517022242396731729459827507943713118474807081252837040399455288243304584657285519745801180208806173399909214707217430776214253290966863368134362233318202451202905129369042215161143894689060372219700408533817521561507035860190649114843395369950068088969586926917839310031774852473899228325011348161597821152973218338629142078983204720835224693599636858828869723104857013163867453472537448933272809804811620517476168860644575578756241488878801634135270086246028143440762596459373581479800272355878347707671357240127099409895596913300045392646391284611892873354516568315932818883340898774398547435315478892419428052655469813890149795733091239219246482069904675442578302315024965955515206536541080344984112573763050385837494325919201089423513390830685428960508397639582387653200181570585565138447571493418066273263731275533363595097594189741261915569677712210621879255560599182932364956876985928279618701770313209260099863822060826146164321379936450295052201543349977303676804357694053563322741715842033590558329550612800726282342260553790285973672265093054925102133454380390376758965047662278710848842487517022242396731729459827507943713118474807081252837040399455288243304584657285519745801180208806173399909214707217430776214253290966863368134362233318202451202905129369042215161143894689060372219700408533817521561507035860190649114843395369950068088969586926917839310031774852473899228325011348161597821152973218338629142078983204720835224693599636858828869723104857013163867453472537448933272809804811620517476168860644575578756241488878801634135270086246028143440762596459373581479800272355878347707671357240127099409895596913300045392646391284611892873354516568315932818883340898774398547435315478892419428052655469813890149795733091239219246482069904675442578302315024965955515206536541080344984112573763050385837494325919201089423513390830685428960508397639582387653200181570585565138447571493418066273263731275533363595097594189741261915569677712210621879255560599182932364956876985928279618701770313209260099863822060826146164321379936450295052201543349977303676804357694053563322741715842033590558329550612800726282342260553790285973672265093054925102133454380390376758965047662278710848842487517022242396731729459827508
···
网友评论