点,线,多边形的创建

单个点的创建可以直接写成P=(x,y)的形式或者np.array((x,y))的形式(建议给矩阵形式,另一种格式只是防止出错) 多个点可以写成Points=[(a,b,c),(d,e,f),(g,h,i)] 的形式或者np.array([(a,b,c),(d,e,f),(g,h,i)])的形式 例子: P1,P2为(1,1)和(2,2)点,Points1,Points2是(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)五个点

>>> P1=(1,1)           ##创建点(1,1)
>>> P2=np.array((2,2))
>>> Points1 = [(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)]
>>> Points2 = np.array([(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)])

除此之外点还可以表示为三维矩阵(此功能仅仅便于点的输入)

>>> Points1 = [[(0.0,0.0),(0.5,0.0)],[(1.0,0.0),(1.5,0.0)],[(2.0,0.0),(2.5,0.0)]]
>>> Points2 = np.array([[(0.0,0.0),(0.5,0.0)],[(1.0,0.0),(1.5,0.0)],[(2.0,0.0),(2.5,0.0)]])

线,面

线用线上一点和线的斜率定义

>>> P1,L1 = (0,0), (1,2)

该程序为过(0,0)点,斜率为(1,2)的线

面用面上一点和面的法向量定义

>>> P1,L1 = (0,0,0), (1,2,3)

该程序为过(0,0,0)点,法向量为(1,2,3)的面

线段

给出起点和终点即可

>>> P1,P2 = (0,0), (1,1)

(0,0)到(1,1)的线段

多边形

只能创建封闭多边形,两种创建方式,一种是按顺时针或逆时针方向给出每一点的坐标,另一种是创建一个基础图形,经旋转平移变换得到三维空间图形

1.由坐标创建 vertices1 = [(0,0,0),(1,0,0),(1,1,1),(0,1,1)] polygon1 = np.array(vertices1)

>>> vertices1 = [(0,0,0),(1,0,0),(1,1,1),(0,1,1)]
>>> polygon1 = np.array(vertices1)

2.创建一个基础图形后变换得到三维图形

>>> vertices2D = Vertices([(0,0),(0,2**0.5),(1,2**0.5),(1,0)])    ##定义的分别是y和z即(y,z)

##旋转 alpha角为俯视图下(z轴的反方向)的旋转角(单位为°)(逆时针为正),旋转点为(x0,y0,z0)点 ## beta角为左视图下(y轴的正方形)的旋转角(逆时针为正),旋转点为(x0,y0,z0)点

>>> x0,y0,z0 = 0,0,0    ##设定位移量 ,即把原来坐标系的(0,0)点平移到新的坐标系中的(x0,y0,z0)点
>>> s1 = alpha, beta =-90,45
>>> ##设定旋转角   alpha角为俯视图下(z轴的反方向)的旋转角(单位为°)(逆时针为正),旋转点为(x0,y0,z0)点
>>> ##            beta角为左视图下(y轴的正方形)的旋转角(逆时针为正),旋转点为(x0,y0,z0)点
>>> vertices = move(shape = vertices2D, to = (x0,y0,z0), by = (alpha,beta))   ##变换
_images/shapes_rotation.png