Processing Math: 26%
To print higher-resolution math symbols, click the
Hi-Res Fonts for Printing button on the jsMath control panel.

jsMath
 40 1234
發新話題
打印

[3D 建模軟體] SketchUp

原問題https://math.pro/db/viewthread.php?tid=1003&page=2#pid14609

邊長13,14,15的三角形相關計算如下
ABC各頂點坐標為A(00)B(150)C(533556)
ABC的內切圓圓心I(74),切ABF(70),切BCD(551532),切CAE(6523165392)

因為SketchUp的圓只是用正24邊形代替,當你在SketchUp操作以A點為圓心,半徑13畫圓和以B點為圓心,半徑14畫圓,設兩圓的交點為C,但測量線段長度得AC=1297BC=1339ABC形狀已經有誤差,直接計算C點坐標。
解聯立方程式x2+y2=132(x15)2+y2=142 ,得到C(533556)

SketchUp也沒有畫角平分線工具,直接計算ABC內心坐標。

OI=aa+b+cOA+ba+b+cOB+ca+b+cOC
  =1413+14+15(00)+1313+14+15(150)+1513+14+15(533556)
  =(74)
得到內心坐標I(74)

以SketchUp所畫出的內切圓和三角形三邊的交點也會有誤差,直接計算交點坐標
BC直線方程式為y0=15660112(x15)4x+3y=60
ID直線方程式為y4=43(x7)3x4y=5
解聯立方程式4x+3y=603x4y=5 ,交點D(551532)

AC直線方程式為\displaystyle y-0=\frac{11.2-0}{6.6-0}(x-0)56x-33y=0
\overline{IE}直線方程式為\displaystyle y-4=-\frac{33}{56}(x-7)33x+56y=455
解聯立方程式\cases{56x-33y=0 \cr 33x+56y=455},交點\displaystyle E(\frac{231}{65},\frac{392}{65})

內切圓和\overline{AB}交點為F(7,0)



SketchUp檔下載



SketchUp檔下載

TOP

原問題https://math.pro/db/viewthread.php?tid=3490&page=1#pid22082

使用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)

有前一次的經驗後就直接計算各點位置
設半徑4的球心A(0,0,0),半徑9的球心B(13,0,0),半徑16的球心C(x,y,0)
\cases{\overline{BC}=25\cr \overline{CA}=20}\cases{(x-13)^2+(y-0)^2=25^2 \cr (x-0)^2+(y-0)^2=20^2}
\displaystyle x=-\frac{28}{13},y=\frac{48\sqrt{29}}{13},得到\displaystyle C\left(-\frac{28}{13},\frac{48\sqrt{29}}{13},0\right)

P(x,y,0)為兩個外公切平面方程式交線上一點
球心A(0,0,0)半徑4的球面和平面相切於A'點,\Rightarrow \overline{AA'}=4∠PA'A=90^{\circ}
球心B(13,0,0)半徑9的球面和平面相切於B'點,\Rightarrow \overline{BB'}=9∠PB'B=90^{\circ}
\Delta PAA'\Delta PBB'為相似三角形(∠APA'=∠BPB'∠PA'A=∠PB'B=90^{\circ})
\overline{PA}:\overline{PB}=\overline{AA'}:\overline{BB'}=4:9\overline{PA}:\overline{AB}=4:5
由外分點公式可知\displaystyle P=\frac{9}{5}A-\frac{4}{5}B=\frac{9}{5}(0,0,0)-\frac{4}{5}(13,0,0)=(-\frac{52}{5},0,0)
得到\displaystyle P(-\frac{52}{5},0,0)

Q(x,y,0)為兩個外公切平面方程式交線上一點
球心A(0,0,0)半徑4的球面和平面相切於A'點,\Rightarrow \overline{AA'}=4∠PA'A=90^{\circ}
球心\displaystyle C\left(-\frac{28}{13},\frac{48\sqrt{29}}{13},0\right)半徑16的球面和平面相切於C'點,\Rightarrow \overline{CC'}=16∠PC'C=90^{\circ}
\Delta PAA'\Delta PCC'為相似三角形(∠APA'=∠CPC'∠PA'A=∠PC'C=90^{\circ})
\overline{QA}:\overline{QC}=\overline{AA'}:\overline{CC'}=4:16\overline{QA}:\overline{AC}=1:3
由外分點公式可知\displaystyle Q=\frac{4}{3}A-\frac{1}{3}C=\frac{4}{3}(0,0,0)-\frac{1}{3}C\left(-\frac{28}{13},\frac{48\sqrt{29}}{13},0\right)=\left(\frac{28}{39},-\frac{16\sqrt{29}}{13},0\right)
得到\displaystyle Q\left(\frac{28}{39},-\frac{16\sqrt{29}}{13},0\right)

\displaystyle P\left(-\frac{52}{5},0,0\right)\displaystyle Q\left(\frac{28}{39},-\frac{16\sqrt{29}}{13},0\right)求交線的對稱比例式
方向向量為\displaystyle \vec{PQ}=\left(\frac{2168}{195},-\frac{16\sqrt{29}}{13},0\right)
PQ直線的對稱比例式為\displaystyle \frac{x+\frac{52}{5}}{\frac{2168}{195}}=\frac{y-0}{-\frac{16\sqrt{29}}{13}}z=0
化簡得到30\sqrt{29}x+271y+312\sqrt{29}=0z=0

假設外公切平面方程式為30\sqrt{29}x+271y+312\sqrt{29}+kz=0k\in R
球心A(0,0,0)到平面距離\displaystyle \frac{|\;0+0+0+312\sqrt{29}|\;}{\sqrt{(30\sqrt{29})^2+271^2+k^2}}=4k=\pm 13\sqrt{455}
得到外公切平面方程式30\sqrt{29}x+271y\pm 13\sqrt{455}z+312\sqrt{29}=0

利用投影點公式求切點A',B',C'
投影點公式:
P(x_0,y_0,z_0)對平面ax+by+cz+d=0的投影點為P'(x_0-at,y_0-bt,z_0-ct),其中\displaystyle t=\frac{ax_0+by_0+cz_0+d}{a^2+b^2+c^2}

計算A(0,0,0)的投影點A'
\displaystyle t=\frac{0+0+0+312\sqrt{29}}{(30\sqrt{29})^2+271^2+(13\sqrt{455})^2}=\frac{2}{39\sqrt{29}}
\displaystyle A'\left(0-30\sqrt{29}\cdot \frac{2}{39\sqrt{29}},0-271\cdot \frac{2}{39\sqrt{29}},0-13\sqrt{455}\cdot \frac{2}{39\sqrt{29}}\right)= \left(-\frac{30}{13},-\frac{542}{39\sqrt{29}},-\frac{2\sqrt{455}}{3\sqrt{29}}\right)

計算B(13,0,0)的投影點B'
\displaystyle t=\frac{30\sqrt{29}\cdot 13+0+0+312\sqrt{29}}{(30\sqrt{29})^2+271^2+(13\sqrt{455})^2}=\frac{3}{26\sqrt{29}}
\displaystyle B'\left(13-30\sqrt{29}\cdot \frac{3}{26\sqrt{29}},0-271\cdot \frac{3}{26\sqrt{29}},0-13\sqrt{455}\cdot \frac{3}{26\sqrt{29}}\right)= \left(\frac{124}{13},-\frac{813}{26\sqrt{29}},-\frac{3\sqrt{455}}{2\sqrt{29}}\right)

計算\displaystyle C\left(-\frac{28}{13},\frac{48\sqrt{29}}{13},0\right)的投影點C'
\displaystyle t=\frac{30\sqrt{29}\cdot (-\frac{28}{13})+271\cdot \frac{48\sqrt{29}}{13}+0+312\sqrt{29}}{(30\sqrt{29})^2+271^2+(13\sqrt{455})^2}=\frac{8}{39\sqrt{29}}
\displaystyle C'\left(-\frac{28}{13}-30\sqrt{29}\cdot \frac{8}{39\sqrt{29}},\frac{48\sqrt{29}}{13}-271\cdot \frac{8}{39\sqrt{29}},0-13\sqrt{455}\cdot \frac{8}{39\sqrt{29}}\right)= \left(-\frac{108}{13},\frac{2008}{39\sqrt{29}},-\frac{8\sqrt{455}}{3\sqrt{29}}\right)


SketchUp檔下載

TOP

TOP

TOP

TOP

TOP

TOP

原問題https://math.pro/db/viewthread.php?tid=3508&page=1#pid22993

Keyframe Animation 1.6只支援元件移動動畫功能,需安裝Keyframe Animation 2.5才有元件縮放大小動畫功能。
https://regular-polygon.com/keyframe-animation/download/



SketchUp檔下載

TOP

TOP

原問題https://math.pro/db/viewthread.php?tid=3898&page=1#pid26489

使用SketchUp Ruby Code Editor編輯程式碼
https://alexschreyer.net/projects/sketchup-ruby-code-editor/


SketchUp的ruby語法介紹https://ruby.sketchup.com/Sketchup.html

程式碼
# 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="圓"

#新增x軸群組
xline=ent.add_line([-10,0,0],[10,0,0])
group=ent.add_group(xline)
group.name="x軸"
group.visible=false

#新增積分體積群組
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

#複製原本的積分體積群組後再手動刪除一半的面
group2=group.copy
group2.name="積分體積(刪除一半的面)"
group2.visible=false

#新增直角三角形群組
pt2=[-4,Math.sqrt(100-(-4)**2),0]
group = ent.add_group
group.entities.add_line [0,0,0],pt2
group.name="直角三角形"
group.visible=false
###########新增場景,依序顯示各個群組###########
#顯示圓
ent[0].visible=true
pages=mod.pages.add "場景號1"
#顯示x軸
ent[1].visible=true
pages=mod.pages.add "場景號2"

for i in 2..20
  ent[ i ].visible=true#顯示正三角形
  pages=mod.pages.add "場景號#{i+1}"
end

#顯示積分體積
ent[21].visible=true
pages=mod.pages.add "場景號22"

#只留下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"

#顯示直角三角形
ent[23].visible=true
pages=mod.pages.add "場景號25"



SketchUp檔下載

TOP

 40 1234
發新話題