2012年12月11日 星期二

Re: [問題] 兩個曲面交線的座標點

作者: mandyyu213 (mandy)
標題: Re: [問題] 兩個曲面交線的座標點
時間: Sun Sep 30 13:19:04 2012


真的非常感謝你!
這完全就是我要的答案
太感謝你了!


※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《mandyyu213 (mandy)》之銘言:
: : 我有兩個三元非線性方程式
: : 用了ContourPlot3D畫了兩個曲面 我想要得到他們的交線座標點(把它存成List)
: : 有試了幾種方法 可以在圖上只顯示他們的交線
: : 可是當我存成List時 List的點卻還是整個曲面
: : 請問有什麼方法可以只存他們的交線嗎
: : ====我用的function像這樣====
: : p1 = ContourPlot3D[{3 \[Nu]*((s2 + 0.5 s3)^2 - (s1 + 0.5 s3)^2)
: : + 2 f*Sinh[0.5 (s1 + s2 + s3)]*((1 + \[Nu])*(s1 - s2)) == 0,
: : 2*f*Cosh[0.5 (s1 + s2 + s3)] +2/3 (s1^2 - s1*s2 + s2^2
: : - s1*s3 - s2*s3 + s3^2) - 1 - f^2 == 0},
: : {s1, -1, 1}, {s2, -1, 1}, {s3, -1, 1}, Mesh -> None,
: : BoundaryStyle -> {1 -> None, 2 -> None, {1, 2} -> {{Green,
: : Tube[.01]}}}, Contours -> {0}, ContourStyle -> Opacity[0]]
: : (p1畫出兩個曲面的交線)
: : p2 = Cases[p1, GraphicsComplex[pts__] :> pts, Infinity][[1]];
: : (將p1的點存到p2)
: : ListPointPlot3D[p2]
: : (將p2點畫出來 可是畫出來的是那兩個曲面)
: : ===
: : 謝謝!!
: 文章內沒設定nu和f,所以假設nu=f=1;
: \[Nu] = 1; f = 1;
: p1 = ContourPlot3D[
: Evaluate@{3 \[Nu]*((s2 + 0.5 s3)^2 - (s1 + 0.5 s3)^2) +
: 2 f*Sinh[0.5 (s1 + s2 + s3)]*((1 + \[Nu])*(s1 - s2)) == 0,
: 2*f*Cosh[0.5 (s1 + s2 + s3)] +
: 2/3 (s1^2 - s1*s2 + s2^2 - s1*s3 - s2*s3 + s3^2) - 1 - f^2 ==
: 0.5}, {s1, -1, 1}, {s2, -1, 1}, {s3, -1, 1},
: BoundaryStyle -> {{1, 2} -> {{RGBColor[0, 1, 0], PointSize[.1]}}}]
: p2 = Cases[p1, GraphicsComplex[pts__] :> pts, Infinity][[1]];
: p3 = Cases[p1, {RGBColor[0, 1, 0], PointSize[0.1], pts__} :> pts,
: Infinity][[All, 1]]
: Show[{Graphics3D@Line@p2[[p3[[1]]]], Graphics3D@Line@p2[[p3[[2]]]]}]
: p1中只是要求不顯示,不表示mathematica不會輸出。
: 所以應該要求只輸出綠色的點就好∼

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 67.194.230.198

沒有留言:

張貼留言