tkintertools.tools_3d#
约 1635 个字 260 行代码 预计阅读时间 28 分钟
文件描述: 3D support
外部引用: array
, constants
, exceptions
, main
, math
, statistics
, tkinter
, typing
源码位置: tkintertoolstools_3d.py
Functions - 函数#
01. project#
project Function
将一个三维空间中的点投影到指定距离的正向平面上,并返回在该平面上的坐标
coordinate
: 点的空间坐标distance
: 正向平面的距离(平面正对着我们)
02. rotate#
rotate Function
将一个三维空间中的点以一个点或线为参照进行旋转(实现方式为欧拉角)
coordinate
: 点的空间坐标dx
: x 方向逆时针旋转弧度,或者绕旋转轴线的旋转弧度dy
: y 方向逆时针旋转弧度dz
: z 方向逆时针旋转弧度center
: 旋转中心的空间坐标axis
: 旋转轴线的空间坐标
03. scale#
scale Function
将一个三维空间中的点以另一个点为缩放中心进行缩放
coordinate
: 点的空间坐标kx
: x 方向缩放比例ky
: y 方向缩放比例kz
: z 方向缩放比例center
: 缩放中心的空间坐标
04. translate#
translate Function
将一个三维空间中的点进行平移
coordinate
: 点的空间坐标dx
: x 方向位移长度dy
: y 方向位移长度dz
: z 方向位移长度
Classes - 类#
01. Canvas3D#
Canvas3D(Canvas) Class
3D 画布基类
__init__ Method
Special
__init__(
self,
master,
width,
height,
x=None,
y=None,
*,
lock=True,
expand=True,
keep=True,
camera_distance=1000,
**kw
)
master
: 父控件width
: 画布宽度height
: 画布高度x
: 画布左上角的横坐标y
: 画布左上角的纵坐标lock
: 画布内控件的功能锁,为False
时功能暂时失效expand
: 画布内控件是否能缩放keep
: 画布比例是否保持不变camera_distance
: 相机位置与原点间的距离,默认值为 1000**kw
: 与tkinter.Canvas
类的参数相同
02. Cuboid#
Cuboid(Geometry) Class
长方体
__init__ Method
Special
__init__(
self,
canvas,
x,
y,
z,
length,
width,
height,
*,
boardwidth=1,
color_fill_up='',
color_fill_down='',
color_fill_left='',
color_fill_right='',
color_fill_front='',
color_fill_back='',
color_outline_up='#000000',
color_outline_down='#000000',
color_outline_left='#000000',
color_outline_right='#000000',
color_outline_front='#000000',
color_outline_back='#000000'
)
canvas
: 父画布x
: 左上角 x 坐标y
: 左上角 y 坐标z
: 左上角 z 坐标length
: 长度width
: 宽度height
: 高度boardwidth
: 边框线条宽度color_fill_up
: 上表面内部颜色color_fill_down
: 下表面内部颜色color_fill_left
: 左侧面内部颜色color_fill_right
: 右侧面内部颜色color_fill_front
: 正面内部颜色color_fill_back
: 后面内部颜色color_outline_up
: 上表面边框颜色color_outline_down
: 下表面边框颜色color_outline_left
: 左侧面边框颜色color_outline_right
: 右侧面边框颜色color_outline_front
: 正面边框颜色color_outline_back
: 后面边框颜色
03. Geometry#
Geometry Class
几何体
rotate Method
旋转几何体中的所有 3D 对象
dx
: x 方向逆时针旋转弧度,或者绕旋转轴线的旋转弧度dy
: y 方向逆时针旋转弧度dz
: z 方向逆时针旋转弧度center
: 旋转中心,默认为原点axis
: 旋转轴线,无默认值
scale Method
缩放几何体中的所有 3D 对象
kx
: x 方向缩放比例ky
: y 方向缩放比例kz
: z 方向缩放比例center
: 缩放中心,默认为几何中心
translate Method
平移几何体中的所有 3D 对象
dx
: x 方向位移长度dy
: y 方向位移长度dz
: z 方向位移长度
04. Line#
Line(_Object3D) Class
线
__init__ Method
Special
canvas
: 父画布point_start
: 起点坐标point_end
: 终点坐标width
: 线的宽度fill
: 线的颜色
05. Point#
Point(_Object3D) Class
点
__init__ Method
Special
__init__(
self,
canvas,
coords,
*,
size=1,
width=1,
fill='#000000',
outline='#000000',
markuptext='',
markupdelta=(0, 0),
markupfont=('Microsoft YaHei', -24),
markupfill='#000000',
markupjustify='center'
)
canvas
: 父画布coords
: 点的空间坐标size
: 点的大小width
: 点轮廓的宽度fill
: 点内部的填充颜色outline
: 点轮廓的颜色markuptext
: 标记文本markupdelta
: 标记文本显示位置的偏移量markupfont
: 标记文本字体markupfill
: 标记文本颜色markupjustify
: 标记文本多行对齐方式
06. Side#
Side(_Object3D) Class
面
__init__ Method
Special
canvas
: 父画布points
: 各点的空间坐标width
: 面轮廓的宽度fill
: 面内部的填充颜色outline
: 面轮廓的颜色
07. Space#
Space(Canvas3D) Class
三维空间
__init__ Method
Special
__init__(
self,
master,
width,
height,
x=None,
y=None,
*,
lock=True,
expand=True,
keep=True,
camera_distance=1000,
origin_size=1,
origin_width=1,
origin_fill='',
origin_outline='',
**kw
)
master
: 父控件width
: 画布宽度height
: 画布高度x
: 画布左上角的横坐标y
: 画布左上角的纵坐标lock
: 画布内控件的功能锁,为False
时功能暂时失效expand
: 画布内控件是否能缩放keep
: 画布比例是否保持不变camera_distance
: 相机位置与原点间的距离,默认值为 1000origin_size
: 原点大小,默认值为 1origin_width
: 原点轮廓宽度,默认值为 1origin_fill
: 原点填充颜色,默认为无色origin_outline
: 原点轮廓颜色,默认为无色**kw
: 与tkinter.Canvas
类的参数相同
08. Tetrahedron#
Tetrahedron(Geometry) Class
四面体
__init__ Method
Special
__init__(
self,
canvas,
point_1,
point_2,
point_3,
point_4,
*,
boardwidth=1,
color_fill=('', '', '', ''),
color_outline=('#000000', '#000000', '#000000', '#000000')
)
canvas
: 父画布point_1
: 第一个顶点point_2
: 第二个顶点point_3
: 第三个顶点point_4
: 第四个顶点boardwidth
: 边框线条宽度color_fill
: 内部颜色序列color_outline
: 边框颜色序列
09. Text3D#
Text3D(_Object3D) Class
三维文本
10. _Object3D#
_Object3D Class
Internal
3D 对象基类
_project Method
Internal
投影对象自身
distance
: 对象与观察者的距离canvas
: 投影到的画布
rotate Method
旋转对象本身
dx
: x 方向逆时针旋转弧度,或者绕旋转轴线的旋转弧度dy
: y 方向逆时针旋转弧度dz
: z 方向逆时针旋转弧度center
: 旋转中心,默认为原点axis
: 旋转轴线,无默认值
scale Method
缩放对象本身
kx
: x 方向缩放比例ky
: y 方向缩放比例kz
: z 方向缩放比例center
: 缩放中心,默认为几何中心