MountPenglai 是一个 turtle 库功能增强包, 并且向下兼容 turtle 的所有函数, 意在改变 turtle 的绘图逻辑, 使之参数化. 当然我也增加了很多turtle本身内置函数无法实现的功能, 在参数化绘图、旋转、色彩变换上非常方便.
如果在学习 C/C++ 时使用过 EasyX Graphics Library 的话, 就会发现 MountPenglai 与 EasyX 非常相似, 没错 EasyX 可以帮助 C/C++ 初学者快速上手图形和游戏编程, 因此也比 turtle 更加适合 Python初学者(这里的初学者指的是正在受高等教育的人, 而不是九年义务教育), 因此我借鉴了 EasyX 的函数名与部分绘图逻辑, 就得到了 Python 这方便的开发平台和 EasyX 简单但适合计算机图形学的绘图功能. 同时这也使得 C/C++ 中使用 EasyX 编写的代码能够较轻松的移植进 Python.
MountPenglai 0.0.3 - Powered by RMSHE
- MountPenglai Pipy Link
- MountPenglai GitHub Link
- EasyX Graphics Library
- Python Turtle
- PythonHomeworkOpenSourceProject
函数名称 | 函数名解释 | 参数 | 参数解释 |
---|---|---|---|
teleport | 将画笔传送到指定位置 | x, y | 点的坐标 |
putpixel | 画点 | x, y, radius=2 | 点的坐标, 点的视觉半径(默认值为2) |
line | 画一条线段 | x0, y0, x1, y1 | 两点确定一条线段 |
polyline | 画连续的多条线段 | POINTs=() | 控制点列表(x0, y0, x1, y1, x2, y2, ......) |
rectangle | 画无填充矩形 | left, top, right, bottom, angle=0, xbase=Center, ybase=Center | 矩形左上角顶点与右下角顶点的坐标, 旋转角度(默认为0), 旋转基点(默认为矩形几何中心) |
solidrectangle | 画无边框的填充矩形 | 同上 | 同上 |
fillrectangle | 画有边框的填充矩形 | 同上 | 同上 |
roundrect | 画无填充的圆角矩形 | 同上 | 同上 |
solidroundrect | 画无边框的填充圆角矩形 | 同上 | 同上 |
fillroundrect | 画有边框的填充圆角矩形 | 同上 | 同上 |
polygon | 画无填充的规则多边形 | x, y, radius, steps=72, angle=0, xbase=Center, ybase=Center | 指定外切圆圆心坐标, 指定外切圆半径, 指定多边形边数(默认为72-画圆), 图形旋转角度(默认为0), 旋转基点坐标(默认为多边形几何中心) |
solidpolygon | 画无边框的规则填充多边形 | 同上 | 同上 |
fillpolygon | 画有边框的规则填充多边形 | 同上 | 同上 |
ellipse | 画无填充的椭圆 | left, top, right, bottom, angle=0, xbase=Center, ybase=Center, stangle=0, endangle=360, steps=DECP | 椭圆外切矩形,旋转角度(默认为0),旋转基点(默认为几何中心),圆弧起始角角度(默认为0), 圆弧终止角角度(默认为360), 绘图计算精度(值越小越精细, 默认为1) |
solidellipse | 画无边框的填充椭圆 | 同上 | 同上 |
fillellipse | 画有边框的填充椭圆 | 同上 | 同上 |
arc | 画椭圆弧 | left, top, right, bottom, stangle=0, endangle=360 | 扇形外切矩形, 扇形的起始角的角度(默认为0), 扇形的终止角的角度(默认为360) |
pie | 画无填充的扇形 | left, top, right, bottom, stangle=0, endangle=360, angle=0, xbase=Center, ybase=Center | 扇形外切矩形,扇形的起始角的角度(默认为0),扇形的终止角的角度(默认为360),旋转角度(默认为0),旋转基点(默认为外切矩形几何中心) |
solidpie | 画无边框的填充扇形 | 同上 | 同上 |
fillpie | 画有边框的填充扇形 | 同上 | 同上 |
Circle | 画无填充的圆 | x, y, radius | 圆心 x 坐标, 圆心 y 坐标, 圆的半径 |
solidcircle | 画无边框的填充圆 | 同上 | 同上 |
fillcircle | 画有边框的填充圆 | 同上 | 同上 |
getpixel | 获取点的颜色(目前存在BUG) | x, y | 点的坐标 |
drawtext | 在指定区域内以指定格式输出字符串 | x, y, TextStr="", fontname="微软雅黑", fontsize=12, fonttype="normal", align="left" | 指定输出坐标, 文本内容, 字体(默认微软雅黑), 字号(默认为12), 字形(默认为普通), 文本对齐方式(默认左对齐) |
saveimage | 将画布导出为矢量图 | fileName | 指定文件名 |
色彩的表达有很多形式,目前主流有HEX, RGB, HSV, HSL, CMYK, HSI, CIE-LAB 这几种, 在MountPenglai中我们只使用 HEX, RGB, HSV 三种. 其中 HEX( 颜色的十六进制值) 为函数与函数间的通用色彩传参形式.
函数名称 | 函数名解释 | 参数 | 参数解释 | 返回值 |
---|---|---|---|---|
RGB | RGB to HEX | R, G, B | 指定RGB颜色的三个通道(红, 绿, 蓝)的分量 | HEX字符串 |
HSV | HSV to HEX | H, S, V | 指定HSV颜色的三个通道(色相, 饱和度, 明度)的分量 | HEX字符串 |
GetRGBValue | HEX to RGB | HEX | 指定颜色的十六进制值(例: "#5c2d91") | RGB三分量元组 |
GetRValue | 返回指定HEX颜色值中的红色分量 | HEX | 同上 | RGB的红色分量 |
GetGValue | 返回指定HEX颜色值中的绿色分量 | HEX | 同上 | RGB的绿色分量 |
GetBValue | 返回指定HEX颜色值中的蓝色分量 | HEX | 同上 | RGB的蓝色分量 |
GetHSVValue | HEX to HSV | HEX | 同上 | HSV三分量元组 |
GetHValue | 返回指定HEX颜色值中的色相分量 | HEX | 同上 | HSV的色相分量 |
GetSValue | 返回指定HEX颜色值中的饱和度分量 | HEX | 同上 | HSV的饱和度分量 |
GetVValue | 返回指定HEX颜色值中的明度分量 | HEX | 同上 | HSV的明度分量 |
HSVtoRGB | HSV色彩空间转RGB色彩空间 | H, S, V | 指定HSV颜色的三个通道(色相, 饱和度, 明度)的分量 | RGB三分量元组 |
RGBtoHSV | RGB色彩空间转HSV色彩空间 | R, G, B | 指定RGB颜色的三个通道(红, 绿, 蓝)的分量 | HSV三分量元组 |
RGBtoGRAY | 返回与指定RGB颜色对应的灰度值颜色 | R, G, B | 同上 | 灰度值 |
RGBChannelExtraction | RGB色彩通道提取 | ColorGroupHex=(), Channel="R", MIN=0, MAX=255, Fill=(0, 0, 0) | 像素组颜色的十六进制值列表, 提取通道[R, G, B], 提取范围[0, 255], 其余通道填充值 | 返回被提取出来的像素组颜色的十六进制值列表 |
RGBChannelEdit | RGB色彩通道编辑(值替换) | ColorGroupHex=(), Channel="R", AlternateValue=None, MIN=0, MAX=255 | 像素组颜色的十六进制值列表, 需要编辑的通道[R, G, B], 替换值[0, 255], 编辑范围[0, 255] | 返回对目标通道替换后的像素组颜色的十六进制值列表 |
RGBChannelDrift | RGB色彩通道线性偏移 | ColorGroupHex=(), Channel="R", DriftValue=None, MIN=0, MAX=255 | 像素组颜色的十六进制值列表, 需要编辑的通道[R, G, B], 偏移量, 编辑范围[0, 255] | 返回对目标通道偏移后的像素组颜色的十六进制值列表 |
HSVChannelExtraction | HSV色彩通道提取 | ColorGroupHex=(), Channel="H", MIN=0.0, MAX=360.0, Fill=(0.0, 1.0, 1.0) | 像素组颜色的十六进制值列表, 提取通道[H, S, V], 提取范围{ H:[0, 360], S:[0, 1], V:[0, 1] }, 其余通道填充值 | 返回被提取出来的像素组颜色的十六进制值列表 |
HSVChannelEdit | HSV色彩通道编辑(值替换) | ColorGroupHex=(), EditChannel="H", AlternateValue=0.0, BaseChannel="H", MIN=0.0, MAX=360.0 | 像素组颜色的十六进制值列表, 编辑通道[H/S/V], 替换值, 基通道[H/S/V], 基通道范围 | 返回对目标通道替换后的像素组颜色的十六进制值列表 |
HSVChannelDrift | HSV色彩通道偏移 | ColorGroupHex=(), EditChannel="H", DriftValue=0.0, BaseChannel="H", MIN=0.0, MAX=360.0 | 像素组颜色的十六进制值列表, 编辑通道[H/S/V], 偏移量, 基通道[H/S/V], 基通道范围 | 返回对目标通道偏移后的像素组颜色的十六进制值列表 |
函数名称 | 函数名解释 | 参数 | 参数解释 |
---|---|---|---|
initgraph | 初始化型表观海龟灭绝处理器(初始化绘图窗口和画布) | width, height, BGcolor="#282c34" | 画布宽度, 画布高度, 画布颜色(默认#282c34) |
BeginBatchDraw | 开始批量绘图. 执行后, 任何绘图操作都将暂时不输出到绘图窗口上, 直到执行 FlushBatchDraw 或 EndBatchDraw 才将之前的绘图输出 | 无 | 无 |
FlushBatchDraw | 执行未完成的绘制任务; 执行一次 TurtleScreen 刷新. 在禁用追踪时使用 | 无 | 无 |
EndBatchDraw | 结束批量绘制,并执行未完成的绘制任务 | 无 | 无 |
clearrectangle | 清空矩形区域 | left, top, right, bottom, angle=0, xbase=Center, ybase=Center | 矩形左上角顶点与右下角顶点的坐标, 旋转角度(默认为0), 旋转基点(默认为矩形几何中心) |
clearroundrect | 清空圆角矩形区域 | left, top, right, bottom, radius, angle=0, xbase=Center, ybase=Center | 矩形左上角顶点与右下角顶点的坐标, 圆角半径, 旋转角度(默认为0), 旋转基点(默认为矩形几何中心) |
clearcircle | 清空圆形区域 | x, y, radius | 圆心坐标,圆的半径 |
clearellipse | 清空椭圆区域 | left, top, right, bottom, angle=0, xbase=Center, ybase=Center, stangle=0, endangle=360, steps=DECP | 椭圆外切矩形,旋转角度(默认为0),旋转基点(默认为几何中心),圆弧起始角角度(默认为0), 圆弧终止角角度(默认为360), 绘图计算精度(值越小越精细, 默认为1) |
clearpie | 清空扇形区域 | left, top, right, bottom, stangle=0, endangle=360, angle=0, xbase=Center, ybase=Center | 扇形外切矩形,扇形的起始角的角度(默认为0),扇形的终止角的角度(默认为360),旋转角度(默认为0),旋转基点(默认为外切矩形几何中心) |
clearpolygon | 清空规则的多边形区域 | x, y, radius, steps=72, angle=0, xbase=Center, ybase=Center | 指定外切圆圆心坐标, 指定外切圆半径, 指定多边形边数(默认为72-画圆), 图形旋转角度(默认为0), 旋转基点坐标(默认为多边形几何中心) |
clearcanvas | 使用当前背景色清空(填充)画布 | 无 | 无 |
RotationMatrix | 指定点绕基点旋转 | x, y, xbase, ybase, angle | 待旋转的点的坐标,基点坐标,旋转角度 |