Hi, Alan

Thank you for your attention, but I don't need the psedu-3D effect. Asymptote
could create real 3D file which pdf has supported since, maybe, version 1.5.



On Sun, Sep 28, 2008 at 10:19 PM, Alan BRASLAU <[EMAIL PROTECTED]> wrote:
> On 2008-09-28 04:35 Zhichu Chen wrote:
>> It is said that Asymptote has supported PRC format 3D file:
>> http://asymptote.sourceforge.net/gallery/3D%20graphs/
>>
>> I really wanna give it a try, but once I was building from the svn
>> source, I was told that I don't have LaTeX in my $PATH. I haven't
>> really been using LaTeX for a long time, and I prefer I don't need
>> to install a bunch of LaTeX programs and packages just for a
>> drawing program which, IMHO, only use LaTeX to make nice
>> labels.
>>
>> Is there any workarounds? And how to embed .prc files into
>> the .pdf document?
>>  --
>> Best Regards
>> Chen
>
> This doesn't really answer your question
> but may be of some related interest to the mailing list.
>
> I am quite fond of pfg/tikz as a drawing package
> that works rather well with plain tex, latex and context.
> Asymptote is a similar tool, but it seems to be less portable.
> However, it appears on the other hand to be much more powerful for 3D.
> Neverless, I am sharing with this context list an impressive tikz example
>
>
>
>
>
> --
> Alan Braslau
> CEA DSM-IRAMIS-SPEC
> CNRS URA 2464
> Orme des Merisiers
> 91191 Gif-sur-Yvette cedex FRANCE
> tel: +33 1 69 08 73 15
> fax: +33 1 69 08 87 86
> mailto:[EMAIL PROTECTED]
>
> http://www-dna2006.cea.fr/
>
>  .''`.
> : :'  :
> `. `'`
>  `-
> that I have adapted to context. (I have put the author on copy.)
>
> Basically, the only changes to the latex source are
> \usepackage{preview} -> \startTEXpage \stopTEXpage
> \begin{tikzpicture} -> \starttikzpicture
> and a few other minor syntax adaptations...)
>
> Alan
>
> % What is it
> % ==========
> %
> % Examples inspired by the thread at comp.text.tex about how to convert some
> hand
> % drawn pictures into programmatic 3D sketches:
> %
> http://groups.google.com/group/comp.text.tex/browse_thread/thread/a03baf5d6fa64865/f7e7b903f1d87a6a
> % The sketches present stereographic and cylindrical map projections and they
> % pose some interesting challenges for doing them with a 2D drawing package
> PGF/TikZ.
> %
> % The main idea is to draw in selected 3D planes and then project onto the
> canvas
> % coordinate system with an appriopriate transformation. Some highlights:
> % [*] usage of pgf math engine for calculation of projection transformations
> and
> %     transitions points from visible (solid lines) to invisible (dashed
> lines) on
> %     meridians and latitude circles
> % [*] definition of 3D plane transformation with expanded styles so that they
> are robust
> %     against redefinition of macros used in their construction
> % [*] usage of named coordinates (nodes) for definition of characteristic
> points in
> %     local coordinate systems so that they are accessible outside of their
> plane of
> %     definition
> % [*] calculation of intersections points with TikZ intersection coordinate
> system
> % [*] usage of 'to' path operation instead of 'arc' for marking angles to
> allow for
> %     easy positioning of text labels on the curve
> % [*] 3D lighting effects with shading
> %
> %
> % Who's done it
> % =============
> %
> % Tomasz M. Trzeciak
> %
> %
> % Distribution and use
> % ====================
> %
> % Use as you see fit. Consider giving a proper attribution to the author.
> %
> %
> % Change log
> % ==========
> %
> % 2008/08/07  posted to latex-community.org
> % 2008/08/08  fixed some typos, added note about 'to' path operation to the
> description,
> %             fixed positioning issue of nodes and 'to' path operation as
> suggested
> %             by Kjell, removed some dead code from KART picture
> % 2008/09/28  adapted as an example to ConTeXt
>
> \usemodule[tikz]
> \usetikzlibrary[calc,fadings,decorations.pathreplacing]
>
> %% helper macros
>
> \def\pgfmathsinandcos#1#2#3{%
>  \pgfmathsetmacro#1{sin(#3)}%
>  \pgfmathsetmacro#2{cos(#3)}%
> }
> \def\LongitudePlane#1#2#3{%
>  \pgfmathsinandcos\sinEl\cosEl{#2} % elevation
>  \pgfmathsinandcos\sint\cost{#3} % azimuth
>  \tikzset{#1/.estyle={cm={\cost,\sint*\sinEl,0,\cosEl,(0,0)}}}
> }
> \def\LatitudePlane#1#2#3{%
>  \pgfmathsinandcos\sinEl\cosEl{#2} % elevation
>  \pgfmathsinandcos\sint\cost{#3} % latitude
>  \pgfmathsetmacro\yshift{\cosEl*\sint}
>  \tikzset{#1/.estyle={cm={\cost,0,0,\cost*\sinEl,(0,\yshift)}}} %
> }
> \def\DrawLongitudeCircle#1#2{
>  \LongitudePlane{current plane}{\angEl}{#2}
>  \tikzset{current plane/.prefix style={scale=#1}}
>   % angle of "visibility"
>  \pgfmathsetmacro\angVis{atan(sin(#2)*cos(\angEl)/sin(\angEl))} %
>  \draw[current plane] (\angVis:1) arc (\angVis:\angVis+180:1);
>  \draw[current plane,dashed] (\angVis-180:1) arc (\angVis-180:\angVis:1);
> }
> \def\DrawLatitudeCircle#1#2{
>  \LatitudePlane{current plane}{\angEl}{#2}
>  \tikzset{current plane/.prefix style={scale=#1}}
>  \pgfmathsetmacro\sinVis{sin(#2)/cos(#2)*sin(\angEl)/cos(\angEl)}
>  % angle of "visibility"
>  \pgfmathsetmacro\angVis{asin(min(1,max(\sinVis,-1)))}
>  \draw[current plane] (\angVis:1) arc (\angVis:-\angVis-180:1);
>  \draw[current plane,dashed] (180-\angVis:1) arc (180-\angVis:\angVis:1);
> }
>
> %% document-wide tikz options and styles
>
> \tikzset{%
>  >=latex, % option for nice arrows
>  inner sep=0pt,%
>  outer sep=2pt,%
>  mark coordinate/.style={inner sep=0pt,outer sep=0pt,minimum
> size=3pt,fill=black,circle}%
> }
>
> \starttext
>
> \startTEXpage
> \starttikzpicture % "THE GLOBE" showcase
>
> \def\R{2.5} % sphere radius
> \def\angEl{35} % elevation angle
> \filldraw[ball color=white] (0,0) circle (\R);
> \foreach \t in {-80,-60,...,80} { \DrawLatitudeCircle{\R}{\t} }
> \foreach \t in {-5,-35,...,-175} { \DrawLongitudeCircle{\R}{\t} }
> % some fancy transparent shading
> % \tikzfading[name=fade inside,inner color=transparent!80,outer
> color=transparent!30]
> % \shadedraw[ball color=white,path fading=fade inside] (0,0) circle (\R);
>
> \stoptikzpicture
> \stopTEXpage
>
> \startTEXpage
> \starttikzpicture % CENT
>
> %% some definitions
>
> \def\R{2.5} % sphere radius
> \def\angEl{35} % elevation angle
> \def\angAz{-105} % azimuth angle
> \def\angPhi{-40} % longitude of point P
> \def\angBeta{19} % latitude of point P
>
> %% working planes
>
> \pgfmathsetmacro\H{\R*cos(\angEl)} % distance to north pole
> \tikzset{xyplane/.estyle={cm={cos(\angAz),sin(\angAz)*sin(\angEl),-
> sin(\angAz),cos(\angAz)*sin(\angEl),(0,-\H)}}}
> \LongitudePlane{xzplane}{\angEl}{\angAz}
> \LongitudePlane{pzplane}{\angEl}{\angPhi}
> \LatitudePlane{equator}{\angEl}{0}
>
> %% draw xyplane and sphere
>
> \draw[xyplane] (-2*\R,-2*\R) rectangle (2.2*\R,2.8*\R);
> \fill[ball color=white] (0,0) circle (\R); % 3D lighting effect
> %\fill[white] (0,0) circle (\R); % just a white circle
> \draw (0,0) circle (\R);
>
> %% characteristic points
>
> \coordinate (O) at (0,0);
> \coordinate[mark coordinate] (N) at (0,\H);
> \coordinate[mark coordinate] (S) at (0,-\H);
> \path[pzplane] (\angBeta:\R) coordinate[mark coordinate] (P);
> \path[pzplane] (\R,0) coordinate (PE);
> \path[xzplane] (\R,0) coordinate (XE);
> \path (PE) ++(0,-\H) coordinate (Paux); % to aid Phat calculation
> \coordinate[mark coordinate] (Phat) at (intersection cs: first 
> line={(N)--(P)},
> second line={(S)--(Paux)});
>
> %% draw meridians and latitude circles
>
> \DrawLatitudeCircle{\R}{0} % equator
> %\DrawLatitudeCircle{\R}{\angBeta}
> \DrawLongitudeCircle{\R}{\angAz} % xzplane
> \DrawLongitudeCircle{\R}{\angAz+90} % yzplane
> \DrawLongitudeCircle{\R}{\angPhi} % pzplane
>
> %% draw xyz coordinate system
>
> \draw[xyplane,<->] (1.8*\R,0) node[below] {$x,\xi$} -- (0,0) -- (0,2.4*\R)
> node[right] {$y,\eta$};
> \draw[->] (0,-\H) -- (0,1.6*\R) node[above] {$z,\zeta$};
>
> %% draw lines and put labels
>
> \draw[dashed] (P) -- (N) +(0.3ex,0.6ex) node[above left] {\bf $N$};
> \draw (P) -- (Phat) node[above right] {\bf $\hat{P}$};
> \path (S) +(0.4ex,-0.4ex) node[below] {\bf $S$};
> \draw[->] (O) -- (P) node[above right] {\bf $P$};
> \draw[dashed] (XE) -- (O) -- (PE);
> \draw[pzplane,->,thin] (0:0.5*\R) to[bend right=15] node[pos=0.4,right]
> {$\beta$} (\angBeta:0.5*\R);
> \draw[equator,->,thin] (\angAz:0.4*\R) to[bend right=30] node[pos=0.4,below]
> {$\phi$} (\angPhi:0.4*\R);
> \draw[thin,decorate,decoration={brace,raise=0.5pt,amplitude=1ex}] (N) -- (O)
> node[midway,right=1ex] {$a$};
>
> \stoptikzpicture
> \stopTEXpage
>
> \startTEXpage
> \starttikzpicture % MERC
>
> %% some definitions
>
> \def\R{3} % sphere radius
> \def\angEl{25} % elevation angle
> \def\angAz{-100} % azimuth angle
> \def\angPhiOne{-50} % longitude of point P
> \def\angPhiTwo{-35} % longitude of point Q
> \def\angBeta{33} % latitude of point P and Q
>
> %% working planes
>
> \pgfmathsetmacro\H{\R*cos(\angEl)} % distance to north pole
> \LongitudePlane{xzplane}{\angEl}{\angAz}
> \LongitudePlane{pzplane}{\angEl}{\angPhiOne}
> \LongitudePlane{qzplane}{\angEl}{\angPhiTwo}
> \LatitudePlane{equator}{\angEl}{0}
>
> %% draw background sphere
>
> \fill[ball color=white] (0,0) circle (\R); % 3D lighting effect
> %\fill[white] (0,0) circle (\R); % just a white circle
> \draw (0,0) circle (\R);
>
> %% characteristic points
>
> \coordinate (O) at (0,0);
> \coordinate[mark coordinate] (N) at (0,\H);
> \coordinate[mark coordinate] (S) at (0,-\H);
> \path[xzplane] (\R,0) coordinate (XE);
> \path[pzplane] (\angBeta:\R) coordinate (P);
> \path[pzplane] (\R,0) coordinate (PE);
> \path[qzplane] (\angBeta:\R) coordinate (Q);
> \path[qzplane] (\R,0) coordinate (QE);
>
> %% meridians and latitude circles
>
> % \DrawLongitudeCircle{\R}{\angAz} % xzplane
> % \DrawLongitudeCircle{\R}{\angAz+90} % yzplane
> \DrawLongitudeCircle{\R}{\angPhiOne} % pzplane
> \DrawLongitudeCircle{\R}{\angPhiTwo} % qzplane
> \DrawLatitudeCircle{\R}{\angBeta}
> \DrawLatitudeCircle{\R}{0} % equator
> % shifted equator in node with nested call to tikz (I didn't know it's
> possible)
> \node at (0,1.6*\R) { \tikz{\DrawLatitudeCircle{\R}{0}} };
>
> %% draw lines and put labels
>
> \draw (-\R,-\H) -- (-\R,2*\R) (\R,-\H) -- (\R,2*\R);
> \draw[->] (XE) -- +(0,2*\R) node[above] {$y$};
> \node[above=8pt] at (N) {\bf $N$};
> \node[below=8pt] at (S) {\bf $S$};
> \draw[->] (O) -- (P);
> \draw[dashed] (XE) -- (O) -- (PE);
> \draw[dashed] (O) -- (QE);
> \draw[pzplane,->,thin] (0:0.5*\R) to[bend right=15] node[midway,right]
> {$\beta$} (\angBeta:0.5*\R);
> \path[pzplane] (0.5*\angBeta:\R) node[right] {$\hat{1}$};
> \path[qzplane] (0.5*\angBeta:\R) node[right] {$\hat{2}$};
> \draw[equator,->,thin] (\angAz:0.5*\R) to[bend right=30] node[pos=0.4,above]
> {$\phi_1$} (\angPhiOne:0.5*\R);
> \draw[equator,->,thin] (\angAz:0.6*\R) to[bend right=35] node[midway,below]
> {$\phi_2$} (\angPhiTwo:0.6*\R);
> \draw[equator,->] (-90:\R) arc (-90:-70:\R) node[below=0.3ex] {$x = a\phi$};
> \path[xzplane] (0:\R) node[below] {$\beta=0$};
> \path[xzplane] (\angBeta:\R) node[below left] {$\beta=\beta_0$};
>
> \stoptikzpicture
> \stopTEXpage
>
> \startTEXpage
> \starttikzpicture % KART
>
> \def\R{2.5}
>
> \node[draw,minimum size=2cm*\R,inner sep=0,outer sep=0,circle] (C) at (0,0)
> {};
> \coordinate (O) at (0,0);
> \coordinate[mark coordinate] (Phat) at (20:2.5*\R);
> \coordinate (T1) at (tangent cs: node=C, point={(Phat)}, solution=1);
> \coordinate (T2) at (tangent cs: node=C, point={(Phat)}, solution=2);
> \coordinate[mark coordinate] (P) at ($(T1)!0.5!(T2)$);
>
> \draw[dashed] (T1) -- (O) -- (T2) -- (Phat) -- (T1) -- (T2);
> \draw[->] (-1.5*\R,0) -- (2.5*\R,0) node[right] {$x$};
> \draw[->] (0,-1.5*\R) -- (0,1.5*\R) node[above] {$y$};
> \draw (O) node[below left] {\bf $O$} -- (P) +(1ex,0) node[above=1ex] {\bf
> $P$};
> \draw (P) -- (Phat) node[above=1ex] {\bf $\hat{P}$};
>
> \stoptikzpicture
> \stopTEXpage
>
> \stoptext
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : https://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________
>



-- 
Best Regards
Chen
----------------------------------------------------------------

          Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
         No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
             tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
                                               | www.sinap.ac.cn
----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to