命題
命題の逆、裏,対偶の関係を示す図です。
文字の表示位置,矢印の始点・終点をCinderellaの作図機能で作図します。それから,図を見ながらスクリプトを書きます。
なお,この図は,「KeTCindyによる図入り教材の作成」のページ https://www65.atwiki.jp/ketcindy/pages/22.html を参考にしています。
まず,逆,裏,対偶の文字を入れる場所に点をとります。
画面したの磁石ツール(グリッドにスナップする)をクリックしておいて,格子点にぴったり置けるようにします。位置はひとまず適当でよいでしょう。
次に,矢印の始点と終点および式を表示する位置です。この時点で各点の位置を調整しながら作図すればよいでしょう。作図順は問いません。下図の通りでなくてかまいません。
式を書く矩形は,中心と対角点で決めますので,対角点を4つとっておきます。この位置はスクリプトで決めるので,適当な位置に取っておけばよいでしょう。下図のハイライトしている点ですが,実際には4点が同時にハイライトするわけではありません。
この4点の位置を決めるスクリプトを書きます。
矩形は Ovaldata() で描くので,たとえば,P5を中心として,対角点P9をどこに置くかで
P9.xy=P5.xy+[0.8,0.4];
としています。0.8と0.4はあとで調整することもできます。
4点を配置したら,Ovaldataで矩形を描き,Expr() で式を書きます。
P9.xy=P5.xy+[0.8,0.4];
P10.xy=P6.xy+[0.8,0.4];
P11.xy=P7.xy+[0.8,0.4];
P12.xy=P8.xy+[0.8,0.4];
Fontsize("La");
Ovaldata("1",[P5,P9],[0]);
Expr([P5,"c","p\to q"]);
Ovaldata("2",[P6,P10],[0]);
Expr([P6,"c","q\to p"]);
Ovaldata("3",[P7,P11],[0]);
Expr([P7,"c","\overline{p}\to \overline{q}"]);
Ovaldata("4",[P8,P12],[0.1]);
Expr([P8,"c","\overline{q}\to \overline{p}"]);
画面上では文字の大きさが不明なので,これでひとまず書き出してみましょう。
矩形の大きさと文字のバランスをここで調整します。
文字の大きさは Fontsize("La"); としています。
次に文字と矢線です。
文字は
Letter([A,"c","対偶",E,"c","逆",D,"c","逆",B,"c","裏",C,"c","裏"]);
矢線はArrowdata() で書きますが,一つ書いたらコピーして中身を書き換えてもよいですが,次のようにすることもできます。
すなわち,矢線の始点、終点をセットにした12本分のリストを作っておき,forall() でまとめて表示するのです。forall() はCindyscriptの関数で,リストの要素を順に走査して処理をします。
allowlist=[[F,G],[L,M],[H,K],[N,O],[P,Q],[R,S],[T,U],[V,W],[X,Y],[P3,P4],[Z,P0],[P1,P2]];
forall(allowlist,Arrowdata(#,["Color=blue"]));
矢線はオプションで青に色指定をしています。
スクリプトの全体をあらためて示しましょう。
Texparent="fig";
Ketinit();
Addax(0);
Fontsize("La");
// 矩形の対角位置を調整
P9.xy=P5.xy+[0.8,0.4];
P10.xy=P6.xy+[0.8,0.4];
P11.xy=P7.xy+[0.8,0.4];
P12.xy=P8.xy+[0.8,0.4];
Ovaldata("1",[P5,P9],[0.1]);
Expr([P5,"c","p\to q"]);
Ovaldata("2",[P6,P10],[0.1]);
Expr([P6,"c","q\to p"]);
Ovaldata("3",[P7,P11],[0.1]);
Expr([P7,"c","\overline{p}\to \overline{q}"]);
Ovaldata("4",[P8,P12],[0.1]);
Expr([P8,"c","\overline{q}\to \overline{p}"]);
Letter([A,"c","対偶",E,"c","逆",D,"c","逆",B,"c","裏",C,"c","裏"]);
allowlist=[[F,G],[L,M],[H,K],[N,O],[P,Q],[R,S],[T,U],[V,W],[X,Y],[P3,P4],[Z,P0],[P1,P2]];
forall(allowlist,Arrowdata(#,["Color=blue"]));
Figpdf();
Windispg();