前日做作業時要寫一些座標變換的題目, 深感手算無望, 便使用 sage 的符號運算功能高效地完成了所有的計算, 於是把主要的**貼到此部落格中, 以後再用相關的計算, 就不用重複輸入這些**了.
(xx, yy, zz, yz, zx, xy) = var('xx yy zz yz zx xy')
(r, theta, phi, z) = var('r theta phi z')
t_polar = matrix([ ## matrices must be defined this way.
[cos(theta), sin(theta), 0],
[-sin(theta), cos(theta), 0],
[0, 0, 1]])
t_sophere = matrix([
[sin(theta)*cos(phi), sin(theta)*sin(phi), cos(theta)],
[cos(theta)*cos(phi), cos(theta)*sin(phi), -sin(theta)],
[-sin(phi), cos(phi), 0]])
c = matrix([[xx, xy, zx],
[xy, yy, yz],
[zx, yz, zz]])
r_polar = t_polar * c * t_polar.t
result_polar = r_polar(xx=r^2*cos(theta)^2*z, yy=r^2*sin(theta)^2*z,
xy=r^2*sin(theta)*cos(theta)*z, zz = z^3,
yz = r*z^2*sin(theta), zx=r*z^2*cos(theta)).simplify_trig()
r_sophere = t_sophere * c * t_sophere.t
result_sophere = r_sophere(xx=sin(theta)^2*cos(phi)^2*cos(theta),
yy=sin(theta)^2*sin(phi)^2*cos(theta),
zz=cos(theta)^3,
yz=sin(theta)*sin(phi)*cos(theta)^2,
zx=sin(theta)*cos(phi)*cos(theta)^2,
xy=sin(theta)^2*cos(theta)*sin(phi)*cos(phi)).simplify_trig()
後面算 result_sophere 和 result_polar 是當時計算的題目, 不是普適的程式, 貼在這裡吐槽老師留作業太隨意, 這尼瑪是人算的嗎?
結果老師下一次作業的計算是下面這個程式完成的:
x, y, z, a = var('x', 'y', 'z', 'a')
r = var('r')
var('a', latex_name='\lambda')
b = var('mu')
r(x, y, z) = sqrt(x^2 + y^2 + z^2)
u(x, y, z) = a*x*z/r^3
uxx = (u.diff(x)).diff(x)
uxx.show()
v(x, y, z) = a*y*z/r^3
vxx = (v.diff(x)).diff(x)
vxx.show()
w(x, y, z) = a*(z^2/r^3 + ((a+3*b)/(a+b))*(1/r))
wxx = (w.diff(x)).diff(x)
wxx.show()
uyy = (u.diff(y)).diff(y)
uyy.show()
uzz = (u.diff(z)).diff(z)
uzz.show()
vxy = (v.diff(x)).diff(y)
vxy.show()
wxz = (w.diff(x)).diff(z)
wxz.show()
(uxx + uyy + uzz + (a+b)/b * (uxx + vxy + wxz)).simplify_radical().show()
m = vector([u, v, w])
gamma = 1/2 * (m.diff() + m.diff().transpose())
gamma.show()
後面一段座標變換的**就不再貼出來了....
座標變換,空間變換的本質
座標變換或空間變換,本質是相對座標的變化,絕對座標沒變。世界空間有兩個物體a,b。將a變換到b的座標空間意思是 將a從世界空間變換到b的區域性座標空間,也就是在b的區域性座標系中重新表示a的座標 也就是求出a在b座標系中的相對座標 做法很簡單 1,a b 得到乙個向量 v,2,把v分解 投影 到b的...
基於VC 的OpenGL程式設計講座之座標變換 3
四 視口變換。視口變換就是將視景體內投影的物體顯示在二維的視口平面上。運用相機模擬方式,我們很容易理解視口變換就是類似於 的放大與縮小。在計算機圖形學中,它的定義是將經過幾何變換 投影變換和裁剪變換後的物體顯示於螢幕視窗內指定的區域內,這個區域通常為矩形,稱為視口。opengl中相關函式是 glvi...
Svg下的座標變換
1 平移變換 translate 平移表示式transform translate x,y 即新座標系的原點在原座標系的 x,y 處。座標軸的方向不變。2 旋轉變換 rotate transform rotate angle cx,cy angle代表旋轉角度,預設單位是 度 瞬時針為正,逆時針為負...