発言者: 田中徹
発言日: 2006 12/29 01:05
> 一見簡単な図ですが1つ1つ書くと意外とパラメータが多くいくつも書くのはしんどいので
> 数値入力を自動化、一本を固定、....
zyam56 さん、意欲的なソースの公開の熱意がうらやましいです。
(あしたのジョーの最終ページ状態でなかなか意欲がわきません)
さて、No.218 No.220 について
問題を作成する側(再利用を考える)からすると
距離が〜になるというのでなく
この例でいえば p,q,r,s の間隔を先に定め
それから距離を適当な答えになるように m, n を定めるのが
通常の作問と思われますがいかがでしょう。
No.220 の問題だと z cm に何を答えればよいのか、厳しいようです。
また、石原さんからの
> 作図の間の計算には,丸めた値を使用しない方が
> 正確に作図できると思います。
には私も同感です。
後のソースには perl は、書式 [2.1f]のみに使用したのみです。
zaym56 さんのソースでは 2点間の距離を perl で記述されていますが
emathP には \Kyori コマンドが準備されていますね。
「餅は餅屋」で「距離」は \Kyori, 「分点」は \Bunten としておく方が
汎用性が増すと思われます。
# perl で作図といえば、以前談話室に「方べきの定理」で
# 4つの比のうち 3つを与えられたとき、問題図を作図してくれる
# ソースを掲載した覚えがあるのですが手元に見つかりません(老化現象の始まり)
#
# また、不要な \makeatletter, \makeatother は混乱を招くかもしれません。
#
2007年もお互いに研鑽を積んで
わかりやすい数学と解答のしやすい問題作成を目指しましょう。> 皆様
\documentclass[a4j]{jarticle}
\usepackage[papersize]{emathP}
\pagestyle{empty}
\def\Hline#1#2{%
\Drawlines{(\xmin,#1)(\xmax,#1)}%
\Put{(\xmin,#1)}[w]{#2}%
}%
\def\Vline#1#2{%
\Drawlines{(#1,\ymin)(#1,\ymax)}%
\Put{(#1,\ymin)}[s]{#2}%
}%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\L{0}%%%%%%%%%%%%%%%%%%%%%%%%
%-------------------------------- ここから
\def\p{6}
\def\q{3}
\def\r{2}
\def\s{0}
\def\Ms{(1,\s)}
\def\Ns{(6,\s)}
\def\MsMq{4.8}
\def\NsNq{3.6}
%-------------------------------- ここまでを適当に変更
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\Lp{(\L,\p)}%%%%%%%%%%%%%%%%%
\def\Lq{(\L,\q)}%%%%%%%%%%%%%%%%%
\def\Lr{(\L,\r)}%%%%%%%%%%%%%%%%%
\def\Ls{(\L,\s)}%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Add\p{0.5}\YMax
\Sub\s{0.5}\YMin
\Sub\L{1}\XMin
\begin{zahyou*}[ul=10mm,Yohaku=0.5\unitlength](\XMin,10)(\YMin,\YMax)%
\Hline\p{$p$}
\Hline\q{$q$}
\Hline\r{$r$}
\Hline\s{$s$}
\Vline\L{$\ell$}
%----------------------------------------
% m, n を 決定し p, q, r との交点を定義
%----------------------------------------
\Candk*\Ms\MsMq{(\xmin,\q)}{0}\Mq\dummy
\Landk\Ms\Mq\LT{0}\Mii
\Landk\Ms\Mq{(\xmin,\p)}{0}\Mp
\Landk\Ms\Mr{(\xmin,\r)}{0}\Mr
\Landk\Ms\Mq\LB{0}\Mi
\Drawline{\Mi\Mii}
\Put\Mi[s]{$m$}
%----------------------------------------
\Candk*\Ns\NsNq{(\xmin,\q)}{0}\dummy\Nq
\Landk\Ns\Nq\LT{0}\Nii
\Landk\Ns\Nq{(\xmin,\p)}{0}\Np
\Landk\Ns\Nq{(\xmin,\r)}{0}\Nr
\Landk\Ns\Nq\LB{0}\Ni
\Drawline{\Ni\Nii}
\Put\Ni[s]{$n$}
%----------------------------------------
% 距離を計算し \HenKo で出力
% 手動で適当に見栄えを考える
%----------------------------------------
\Kyori\Lq\Lr\LqLr
\HenKo\Lq\Lr{\LqLr}
\Kyori\Lr\Ls\LrLs
\HenKo\Lr\Ls{\LrLs}
\calcval[s]{emround(\MsMq,1)}\PrMsMq
\HenKo<putpos=0.55,putoption=[w],henkomoziH=-4pt,henkoH=16pt>\Mq\Ms{\small\PrMsMq\,$cm$}
\Kyori\Ns\Nr\NsNr
\calcval[2.1f]{emround(\NsNr,1)}\PrNsNr
\HenKo<henkomoziH=-6pt,putoption={[e]},henkoH=12pt>\Ns\Nr{\small\PrNsNr\,$cm$}
\Kyori\Nq\Np\NqNp
\calcval[2.1f]{emround(\NqNp,1)}\PrNqNp
\HenKo<henkomoziH=-6pt,putoption={[e]},henkoH=10pt>\Nq\Np{\small\PrNqNp\,$cm$}
\end{zahyou*}
\end{document}
▼関連発言
│
└◆207:Re[2]:\calcvalの戻り値を小数第1位にするには?(Re:5424) [石原 守] 12/27 09:35
├◆210:Re[3]:\calcvalの戻り値を小数第1位にするには?(Re:5424) [田中徹] 12/27 12:20
└◆213:Re[3]:\calcvalの戻り値を小数第1位にするには?(Re:5424) [tDB] 12/27 13:50
├◆214: 補足 [tDB] 12/27 13:53
└◆216:Re[4]:\calcvalの戻り値を小数第1位にするには?(Re:5424... [石原 守] 12/27 16:40
└◆218:Re[5]:\calcvalの戻り値を小数第1位にするには?(Re:542.. [zyam56] 12/27 22:41
└◆219:Re[6]:\calcvalの戻り値を小数第1位にするには?(Re:5.. [石原 守] 12/28 19:55
└◆220:Re[7]:\calcvalの戻り値を小数第1位にするには?(Re.. [zyam56] 12/28 20:29
└◆221:Re[8]:\calcvalの戻り値を小数第1位にするには?(.. [田中徹] 12/29 01:05
└◆222:Re[9]:\calcvalの戻り値を小数第1位にするには?.. [zyam56] 12/29 10:18<-last