使用maxima計算結果如下
設半徑4的球心\(A(0,0,0)\),半徑9的球心\(B(13,0,0)\),半徑16的球心\(\displaystyle C\left(-\frac{28}{13},\frac{48\sqrt{29}}{13},0\right)\)
外公切平面方程式為\(30\sqrt{29}x+271y\pm 13\sqrt{455}z+312\sqrt{29}=0\)
和半徑4的球相切於\(\displaystyle A' \left(-\frac{20}{13},-\frac{542}{39\sqrt{29}},-\frac{2\sqrt{455}}{3\sqrt{29}}\right)\)
和半徑9的球相切於\(\displaystyle B' \left(\frac{124}{13},-\frac{813}{26\sqrt{29}},-\frac{3\sqrt{455}}{2\sqrt{29}}\right)\)
和半徑16的球相切於\(\displaystyle C' \left(-\frac{108}{13},\frac{2008}{39\sqrt{29}},-\frac{8\sqrt{455}}{3\sqrt{29}}\right)\)
程式碼
# Default code
mod = Sketchup.active_model # Open model
ent = mod.entities # All entities in model
sel = mod.selection # Current selection
###########先產生動畫所需的各個群組###########
#半徑10的圓
circle=ent.add_circle [0,0,0],[0,0,1],10
#將圓的各頂點形成面
cv_arr = []
circle.each do |c|
cv_arr << c.vertices[0]
end
face = ent.add_face cv_arr
#新增一個圓的群組
group=ent.add_group(face.all_connected)
group.name="圓"
#新增積分體積群組
pt1=[-10,0,0]
pt2=[-9,Math.sqrt(100-(-9)**2),0]
pt3=[-9,-Math.sqrt(100-(-9)**2),0]
pt4=[-9,0,Math.sqrt(300-3*(-9)**2)]
face=ent.add_face pt1,pt4,pt2
edges=face.edges
for edge in edges
edge.visible=false#將邊隱藏
end
#增加為三角形面
face=ent.add_face pt1,pt4,pt3
edges=face.edges
for edge in edges
edge.visible=false#將邊隱藏
end
#新增正三角形群組
for i in -9..9
x=i
pt1=[i,Math.sqrt(100-i**2),0]
pt2=[i,-Math.sqrt(100-i**2),0]
pt3=[i,0,Math.sqrt(300-3*i**2)]
group = ent.add_group
group.entities.add_curve [pt1,pt2,pt3,pt1]
group.name="正三角形x=#{i}"
group.visible=false
if x==9
break
end
pt4=[i+1,Math.sqrt(100-(i+1)**2),0]
pt5=[i+1,-Math.sqrt(100-(i+1)**2),0]
pt6=[i+1,0,Math.sqrt(300-3*(i+1)**2)]
#增加為四邊形面
face1=ent.add_face pt1 , pt3 , pt6,pt4
edges=face1.edges
for edge in edges
edge.visible=false#將邊隱藏
end
#增加為四邊形面
face2=ent.add_face pt2 , pt3 , pt6,pt5
edges=face2.edges
for edge in edges
edge.visible=false#將邊隱藏
end
end
pt1=[10,0,0]
pt2=[9,Math.sqrt(100-9**2),0]
pt3=[9,-Math.sqrt(100-9**2),0]
pt4=[9,0,Math.sqrt(300-3*9**2)]
face=ent.add_face pt1,pt2,pt4
edges=face.edges
for edge in edges
edge.visible=false#將邊隱藏
end
face=ent.add_face pt1,pt3,pt4
edges=face.edges
for edge in edges
edge.visible=false#將邊隱藏
end
group = ent.add_group(face.all_connected)
group.name="積分體積"
group.visible=false
#只留下x=-6的正三角形,其餘正三角形隱藏
for i in 2..6
ent[ i ].visible=false
end
for i in 8..20
ent[ i ].visible=false
end
pages=mod.pages.add "場景號23"
#改顯示積分體積(刪除一半的面)
ent[21].visible=false
ent[22].visible=true
pages=mod.pages.add "場景號24"