猫史档案馆


【Python作品分享】花摆线-Yeah-c3

用户:孤僻的木叶龙982孤僻的木叶龙982查看:0 回复:3 评论:0 创建时间:2020-02-25T14:27:44


【作品展示】

center_image

 

【作品介绍】

万花尺就是圆内摆线。由三个参数决定:

外圆半径。

内圆半径。

轨迹点半径。

 

【作品源代码】

import math
import turtle

__Pen = turtle.Pen()


def 计算前景色():

    global r, g, b
    c = (外圆转过角度 % (255 * 6))
    if (c >= 255 * 5):
        b += 1
    elif (c >= 255 * 4):
        g -= 1
    elif (c >= 255 * 3):
        r += 1
    elif (c >= 255 * 2):
        b -= 1
    elif (c >= 255 * 1):
        g += 1
    else:
        r -= 1
    #print(r, g, b)
    return '#%02X%02X%02X' % (r, g, b)
    #return (r / 255), (g / 255), (b / 255)

def 计算笔迹点():

    内圆圆心x = ((外圆半径 - 内圆半径) * math.cos(math.radians(外圆转过角度)))
    内圆圆心y = ((外圆半径 - 内圆半径) * math.sin(math.radians(外圆转过角度)))
    内圆转过角度 = ((外圆转过角度 * 外圆半径) / 内圆半径)
    笔迹点角度 = (外圆转过角度 - 内圆转过角度)
    笔迹点x = (内圆圆心x + 笔迹点半径 * math.cos(math.radians(笔迹点角度)))
    笔迹点y = (内圆圆心y + 笔迹点半径 * math.sin(math.radians(笔迹点角度)))
    return 笔迹点x, 笔迹点y

#开始进入Python的世界
global 外圆半径, 内圆半径, 笔迹点半径, 笔迹点x, 笔迹点y, 外圆转过角度, r, g, b
外圆半径, 内圆半径, 笔迹点半径 = 150, 53, 60
外圆转过角度 = 0
笔迹点x = ((外圆半径 - 内圆半径) + 笔迹点半径)
笔迹点y, 外圆转过角度 = 0, 0
r, g, b = 255, 0, 255
__Pen.clear()
__Pen.penup()
__Pen.goto(笔迹点x, 笔迹点y)
__Pen.pendown()
for __count in range(7200):
    __Pen.pencolor(计算前景色())
    外圆转过角度 += 1
    [笔迹点x, 笔迹点y] = 计算笔迹点()
    __Pen.goto(笔迹点x, 笔迹点y)
while (input('gameOver? Y/N ') != 'Y'):
    pass

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
Libby琪Libby琪

Wonderful!

点赞0


评论


TomeTome

内圆半径大于外圆半径也可以的。

点赞0


评论


蓝精灵Leo蓝精灵Leo

转不成积木……

点赞0


评论