発言者: forestvalley
発言日: 2013 04/07 23:22
皆様おばんです。いつも掲示板で勉強させていただいてます。ありがとうございます。
空間Zahyou環境のオプションEx,Ey,Ezを平行投影法で設定するマクロを作ってみました。
x軸からの角度とz軸からの角度を帰ると視点が変えられます。
視点の設定が楽に変えられますので、よろしければ使ってみてください。
(wizerdさんにも見ていただきました。)
\setangle{θ}{φ}で無限遠点Aから原点Oを見たときに,OAのxy平面への正射影とx軸のなす角θ,
z軸とOAのなす角φを指定(単位は度),ラジアンに変換したものを\xangle,\zangleに格納。
x,y,z方向の単位ベクトルを平行投影した2次元ベクトルを\X,\Y,\Zに格納。Zahyou環境などで
Ex={\X},Ey={\Y},Ez={\Z}と指定する。
角度を変えるとアングルが変わります。
\documentclass[b5j,10pt]{jsarticle}
\usepackage{emathP}
%以下,平行投影マクロ
\def\setangle#1#2{%
\teisuuretu{xanglek=#1;zanglek=#2}%
\calcval{2*$pi*\xanglek/360}\xangle%
\calcval{2*$pi*\zanglek/360}\zangle%
\calcval{-sin(\xangle)}\Xx%
\calcval{-cos(\xangle)*cos(\zangle)}\Xy%
\def\X{(\Xx,\Xy)}
\calcval{cos(\xangle)}\Yx%
\calcval{-sin(\xangle)*cos(\zangle)}\Yy%
\def\Y{(\Yx,\Yy)}
\calcval{sin(\zangle)}\Zy%
\def\Z{(0,\Zy)}
}
%ここまで
\begin{document}
\setangle{20}{70}%角度を変えると視点が変わります。
%%%%%picture start
\begin{Zahyou}[%
ul=8truemm%
,Ex={\X}%
,Ey={\Y}%
,Ez={\Z}%
]%
(-1,6)(-1,6)(-1,6)
\iiiPut\iiiXMAX[nw]{$x$}
\iiiPut\iiiYMAX[ne]{$y$}
\iiiPut\iiiZMAX[n]{$z$}
\linethickness{0.3truept}
\iiitenretu*{A(3,0,0);B(3,3,0);C(0,3,0);D(0,0,3);E(3,0,3);F(3,3,3);G(0,3,3)}
\iiiDrawlines{\O\A\B\C\O;\D\E\F\G\D;\O\D;\A\E;\B\F;\C\G}
\end{Zahyou}
%%%%%picture end
\end{document}
▼関連発言
│
└◆1115:平行投影 [forestvalley] 04/07 23:22<-last