-
个人简介
import matplotlib.pyplot as plt import numpy as np
fig = plt.figure() ax = fig.add_subplot(111,projection='3d')
def draw_ball(a,b,c): #在(0,0,0)处画一个x轴半轴长a,y轴半轴长b,z轴半轴长c椭圆 u = np.linspace(0,np.pi*2,1000) v = np.linspace(0,np.pi,1000) U,V = np.meshgrid(u,v) x = np.sin(U)*np.cos(V) / a y = np.sin(U)*np.sin(V) / b z = np.cos(U) / c return x,y,z
def draw_tail(f_bone,f_meat,b1,b2): #在x属于[b1,b2) 画一条 x = x ,y = f_bone(x) , z = 0 的曲线 # 然后在曲线 每一个点上 画一个 r = f_meat(x), 平行于yOz平面 的圆 , 拼成一个曲面 th = np.linspace(0,np.pi2,1000) bone = np.linspace(b1,b2,1000) bone,th = np.meshgrid(bone,th) x = bone ; bone_y = f_bone(bone) ; bone_z = np.zeros_like(bone) r = f_meat(bone) y = bone_y+rnp.cos(th) ; z = bone_z+r*np.sin(th) return x,y,z
def strench(x,y,z,a,b,c): #将点集(x,y,z) x轴放大a倍 y轴放大b倍 z轴放大c倍 return x/a , y/b , z/c
def turn(shoot,angle,x,y,z): #对点集(x,y,z)以shoot为坐标轴,旋转angle角(弧度制) c = np.cos(angle);s = np.sin(angle) if(shoot == 'x'): return x , yc+zs , zc-ys elif(shoot == 'y'): return xc+zs , y , zc-xs else: return xc+ys , yc-xs , z
def move(x0,y0,z0,x,y,z): #将点集(x,y,z) 移到(x0,y0,z0) xx = np.mean(x); yy = np.mean(y) ; zz = np.mean(z) dx = x0-xx ; dy = y0-yy ; dz = z0-zz return x+dx,y+dy,z+dz
'''
x,y,z = () ax.plt_surface(x,y,z)
'''
plt.show()
-
最近活动
This person is lazy and didn't join any contests or homework.