emath saloon (Read Only)

新規発言一覧最新記事過去一覧検索HOME

スレッド

└◇323:
陰影付き球のマクロ化 [Kat] 02/01 09:39

 └◇324:Re:陰影付き球のマクロ化 [tDB] 02/01 16:54
  └◇325:Re[2]:陰影付き球のマクロ化 [Kat] 02/01 19:59
   └◇326:Re[3]:陰影付き球のマクロ化 [田中徹] 02/02 00:02
    └◇328:Re[4]:陰影付き球のマクロ化 [Kat] 02/05 23:33
     └◇362:--- [---] 03/27 07:26<-last


323● 陰影付き球のマクロ化[ Kat ] 2007 02/01 09:39
emathWikiの円錐の項目で陰影付き球を拝見いたしました.
以前から,このような図をかきたいと思っていました.
できれば,これをマクロ化していただけないでしょうか.
引数に円の中心,半径,光源の角度,濃度[0-1],色など
あると良いと思います.よろしくお願いします.
スレッド一覧


324● Re:陰影付き球のマクロ化[ tDB ] 2007 02/01 16:54
これはマクロでは荷が重いでしょう。
イラレなどお絵かきソフトを持ち出すのが賢明だと思います。

一応,
    emathPs.sty v 1.18α1 2007/02/01
に,
    \kagetukiKyuu
というコマンドを作っては見ましたが.....
コマンド名もかったるいですね。どうしましょう.....
このバージョンはαテストという位置付けです。
  要覚悟:人柱
--> http://emath.s40.xrea.com/temp/Ps118a1sty.lzh

使用例は Wiki/kagetukiKyuu というページを臨時に作ってみます。
スレッド一覧


325● Re[2]:陰影付き球のマクロ化[ Kat ] 2007 02/01 19:59
どもありがとうございます.
取り急ぎ,陰付き球をかいてみました.
座標等はcut and tryで決定しました.
数式を利用すると立方体に内接する大小の球(結晶)など
かけると思います.諸先生方のお知恵を借りたいです.

%========== start ====================================
\documentclass{jarticle}
\usepackage{emathPs}
\begin{document}
\begin{pszahyou*}[ul=10mm,borderwidth=2pt](-2,2)(-2,2)
\put(-1,0){\kagetukiKyuu[noudo=0.2]{1}{(.6,120)}{0.7}}
\put(-0.3,-1){\kagetukiKyuu{0.5}{(0.3,120)}{0.35}}
\put(-0.3,1){\kagetukiKyuu{0.5}{(0.3,120)}{0.35}}
\put(0.6,0){\kagetukiKyuu[noudo=0.2]{1}{(.6,120)}{0.7}}
\end{pszahyou*}
\end{document}
%============ end =====================================
スレッド一覧


326● Re[3]:陰影付き球のマクロ化[ 田中徹 ] 2007 02/02 00:02
> 数式を利用すると立方体に内接する大小の球(結晶)など
> かけると思います.

数式でなく手計算してしまいました。
Kat さんの本意ではないと思いますがご容赦をお願いします。

マクロ \球擬き(もどき)は 
以前談話室に掲示したものを、自分なりに汎用性をもたせたつもりです。
(エラー処理はありません)

Ps のお約束事で恐縮ですが
dviout では荒く見えるので PDF または PS を作成して骨を拾ってやってください。
# emath 掲示板で tDB さんと飯島さんにご助言をいただきました。


\documentclass[b5j]{jarticle}
\usepackage[papersize]{emathP}
\usepackage[debug]{emathPs}
\pagestyle{empty}

\makeatletter%
\def\球擬き#1#2#3#4#5#6#7{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\@描画中心{#1}%    球の2次元上の中心座標
\def\@半径{#2}%        球体の半径
\def\@中心比{#3}%      同心円の中心の半径比率
%   0:中心に近い 〜 1:球面(周)に近い
\def\@中心偏角{#4}%    同心円の中心偏角
\def\@開始濃度{#5}%    最初の濃度 (0 〜 1)
\def\@終了濃度{#6}%    最後の濃度 (0 〜 1)
\def\@分割数{#7}%      描画分割数
%                      多いほど滑らか
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Kuromaru\@描画中心%
\EPSkaiten\@描画中心\@中心偏角{%
\rtenretu*<perl>[\@描画中心]{@同心円中心(\@半径*\@中心比,0)}%%
\En*[\@開始濃度]\@描画中心\@半径%
\calcval{(\@終了濃度/\@開始濃度)**(1/\@分割数)}\@描画濃度%
\Kyori\@描画中心\@同心円中心\@距離%
\Add\@半径\@距離\@内半径%
\calcval{\@半径-\@距離}\@半径限界%
\calcval{(\@半径限界/\@内半径)**(1/\@分割数)}\@半径比%
\Ifor\i{0}{\@分割数}\Do{%%
\calcval{\@内半径*(\@半径比**\i)}\@描画半径%
\calcval{\@開始濃度*(\@描画濃度**\i)}\@濃度%
\CandC\@描画中心\@半径\@同心円中心\@描画半径\Y\X%
%
\KinziEnko\@描画中心\@半径{hazimeten=\Y}{owariten=\X}\円弧%
\KinziEnko\@同心円中心\@描画半径{hazimeten=\X}{owariten=\Y}\弓形弧%
\edef\描画弧{\円弧\弓形弧}%
\Nuritubusi[\@濃度]\描画弧%
%
}%
\calcval[d]{int(\@分割数/2)}\@分割数半分%
\Ifor\i{0}{\@分割数半分}\Do{%%
\calcval{\@終了濃度-\@濃度*(\i/\@分割数半分)}\@正円濃度%
\calcval{\@半径限界*((\@分割数半分-\i)/\@分割数半分)}\@正円半径%
\Put\@同心円中心{\ougigata*[\@正円濃度]{\@正円半径}{0}{360}}%
}%
}%%
}
\makeatother%


\begin{document}
\begin{pszahyou*}[ul=10mm,EPSclip=false](0,5)(0,5)%
\def\辺長{2}%
\def\大球半径{1.4}%
\def\小球半径{1}%
\def\O{(0,0)}%
\rtenretu*{A(\辺長,-35);B(\辺長,25);C(\辺長,90)}%
\Addvec\A\B\D%
\Addvec\A\C\E%
\Addvec\B\C\F%
\Addvec\D\C\G%
\Bunten\C\D{1}{1}\M%
\球擬き\F{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\球擬き\D{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\球擬き\M{\大球半径}{0.8}{70}{0.9}{0.4}{20}%
\球擬き\C{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\球擬き\G{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\球擬き\O{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\球擬き\A{\小球半径}{0.8}{70}{0.5}{0.3}{20}%
\Drawlines{\O\A\D}%
\Hasen{\O\B\D}%
\Drawlines{\O\C}%
\Drawlines{\C\E\G\F\C}%
\Drawlines{\A\E}%
\Drawlines{\D\G}%
\Hasen{\B\F}%
\end{pszahyou*}%
\end{document}
スレッド一覧


328● Re[4]:陰影付き球のマクロ化[ Kat ] 2007 02/05 23:33
田中様のソースを\kagetukiKyuuに書き直しました.
アルゴリズムの違いで球の質感が違っています.

図は「だまし絵」を見ているようで,右下の球は,手前にあるような,
気がしますがいかがでしょうか?

処理時間と印刷時の出来映えの関係で,少し手を抜いて処理してもいいように
思いますがどうでしょうか?


%=============== start =============================================
\documentclass[a4j]{jarticle}
\usepackage{emathP}
\usepackage[debug]{emathPs}
\pagestyle{empty}
\begin{document}
\begin{pszahyou*}[ul=10mm](-5,5)(-5,5)%
\def\辺長{2}%
\def\大球半径{1.4}%
\def\小球半径{1}%
\def\O{(0,0)}%
\def\SmallKyuu#1{\Put{#1}{\kagetukiKyuu[noudo=0.4]{\小球半径}{(0.8,70)}{0.5}}}
\def\BigKyuu#1{\Put{#1}{\kagetukiKyuu[noudo=0.8]{\大球半径}{(1.1,70)}{0.8}}}
\rtenretu*{A(\辺長,-35);B(\辺長,25);C(\辺長,90)}%
\Addvec\A\B\D%
\Addvec\A\C\E%
\Addvec\B\C\F%
\Addvec\D\C\G%
\Bunten\C\D{1}{1}\M%
\SmallKyuu\F
\SmallKyuu\D
\BigKyuu\M
\SmallKyuu\C
\SmallKyuu\G
\SmallKyuu\O
\SmallKyuu\A
\Drawlines{\O\A\D}%
\Hasen{\O\B\D}%
\Drawlines{\O\C}%
\Drawlines{\C\E\G\F\C}%
\Drawlines{\A\E}%
\Drawlines{\D\G}%
\Hasen{\B\F}%
\end{pszahyou*}%
\end{document} 
%===================== end ====================================
スレッド一覧


362● ---[ --- ] 2007 03/27 07:26
この記事は何らかの理由で削除されました

スレッド一覧

CGIROOM