level 5
剑域子群
楼主
问题一:老问题。
http://quaternions.blog.163.com/blog/static/206082147201331173925194/
f的数据来自这个例子,这里我提取的老版的ListSurfacePlot3D,例子是Graphics的几百M的电子书的的第二章的第一章的第二节的2.1.2,效果参见@
@网易相册不能外链。
http://quaternions.blog.163.com/blog/static/206082147201331211754990/
MakePolygons[vl_List]:=Module[{l=vl,l1=Map[RotateLeft,vl],mesh},mesh={l,l1,RotateLeft[l1],RotateLeft[l]};
mesh=Map[Drop[#,-1]&,mesh,{1}];
mesh=Map[Drop[#,-1]&,mesh,{2}];
Polygon/@Transpose[Map[Flatten[#,1]&,mesh]]]
listSurfacePlot3D[t3_List,opts___]:=Show[Graphics3D[MakePolygons[t3]],opts]
makeTubes[{p0_,d1_,d2_,dt_},m_,r_,pp\[CurlyPhi]_,ppt_,T_]:=Cases[Table[listSurfacePlot3D[(*tube parametrizations*)Table[{x0,y0,0}+p0+r (Cos[\[CurlyPhi]] d1+Sin[\[CurlyPhi]] d2)+t dt,{\[CurlyPhi],0.,2.Pi,2Pi/pp\[CurlyPhi]},{t,-T,T,2T/ppt}]],{x0,-m,m},{y0,-m,m}],_Polygon,Infinity]
Show[Graphics3D[{EdgeForm[],Transpose[{Specularity[.1]&/@{RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]},f=makeTubes[#,2,0.1,12,24,3]&/@N[(*three groups of non-intersecting tubes*){{{0,0,1},1/Sqrt[2] {0,1,1},1/Sqrt[6] {-2,1,-1},1/Sqrt[3] {1,1,-1}},{{1/2,0,1/2},1/Sqrt[2] {1,-1,0},1/Sqrt[6] {-1,-1,2},1/Sqrt[3] {1,1,1}},{{1/2,0,0},1/Sqrt[2] {1,1,0},1/Sqrt[6] {1,-1,2},1/Sqrt[3] {-1,1,1}}}]}]}],PlotRange->All]
那么如何直接用新版的ListSurfacePlot3D画出圆柱图及用f的数据画出圆管呢?
注意测试新版的时候,在合适的地方可能要Normal一下,使用最图数据是顶点坐标数据而非GraphicsComplex的索引数据。
问题2:Graphics这书有没有电子版的pdf,djvu之类的,类似于同一系列的Numerics 和symbolics和programming.
2013年04月12日 08点04分
1
http://quaternions.blog.163.com/blog/static/206082147201331173925194/
f的数据来自这个例子,这里我提取的老版的ListSurfacePlot3D,例子是Graphics的几百M的电子书的的第二章的第一章的第二节的2.1.2,效果参见@
@网易相册不能外链。
http://quaternions.blog.163.com/blog/static/206082147201331211754990/

MakePolygons[vl_List]:=Module[{l=vl,l1=Map[RotateLeft,vl],mesh},mesh={l,l1,RotateLeft[l1],RotateLeft[l]};mesh=Map[Drop[#,-1]&,mesh,{1}];
mesh=Map[Drop[#,-1]&,mesh,{2}];
Polygon/@Transpose[Map[Flatten[#,1]&,mesh]]]
listSurfacePlot3D[t3_List,opts___]:=Show[Graphics3D[MakePolygons[t3]],opts]
makeTubes[{p0_,d1_,d2_,dt_},m_,r_,pp\[CurlyPhi]_,ppt_,T_]:=Cases[Table[listSurfacePlot3D[(*tube parametrizations*)Table[{x0,y0,0}+p0+r (Cos[\[CurlyPhi]] d1+Sin[\[CurlyPhi]] d2)+t dt,{\[CurlyPhi],0.,2.Pi,2Pi/pp\[CurlyPhi]},{t,-T,T,2T/ppt}]],{x0,-m,m},{y0,-m,m}],_Polygon,Infinity]
Show[Graphics3D[{EdgeForm[],Transpose[{Specularity[.1]&/@{RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]},f=makeTubes[#,2,0.1,12,24,3]&/@N[(*three groups of non-intersecting tubes*){{{0,0,1},1/Sqrt[2] {0,1,1},1/Sqrt[6] {-2,1,-1},1/Sqrt[3] {1,1,-1}},{{1/2,0,1/2},1/Sqrt[2] {1,-1,0},1/Sqrt[6] {-1,-1,2},1/Sqrt[3] {1,1,1}},{{1/2,0,0},1/Sqrt[2] {1,1,0},1/Sqrt[6] {1,-1,2},1/Sqrt[3] {-1,1,1}}}]}]}],PlotRange->All]
那么如何直接用新版的ListSurfacePlot3D画出圆柱图及用f的数据画出圆管呢?
注意测试新版的时候,在合适的地方可能要Normal一下,使用最图数据是顶点坐标数据而非GraphicsComplex的索引数据。
问题2:Graphics这书有没有电子版的pdf,djvu之类的,类似于同一系列的Numerics 和symbolics和programming.