樹形図1

場合の数(4地点P,Q,R,Sを結ぶ道の選び方)に対する第1の樹形図.

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (title=)

jyukeizu01.zip

  • 画面上に幾何点A(0,0), B(1,0),C(2,0)をとる.
  注)磁石ボタンを使うと,点が取りやすい.
  • SE,NWを動かして描画領域を適切にとっておく.

Addax(0);
// 座標軸は描かない
vc=[0,0.4];
// 右側12個の円の中心間距離0.4
vr=[0,0.15];
// 円の半径を0.15とする
cL=C.x+1,-2.2;
// 右側12個の円の中心座標のリストの初期値
// C.x は点Cのx座標
forall(1..11, cL=append(cL,cL_#+vc));
// 右側12個の円の中心座標のリスト作成
// 1..11はリスト[1,2,3,4,5,6,7,8,9,10,11]
// forall はCindy Scriptの反復命令で1..11の
// リストの数だけ次の文を実行する
// #にはリストの中身が一つずつ代入される
// append(<リスト>,<expr>) はリストの最後に
// expr を追加したリストを返す
// cL_# はリストcLの#番目の要素を表わす
forall(1..12, Circledata(text(#),[cL_#,cL_#+vr]));
// 右側12個の円cr1~cr12を作成する
// text(#) は例えば #=1 のとき文字 "1" を作る
Putpoint("E",[C.x,(cL_2_2+cL_3_2)/2]);
// 第2のパラメータの座標点に幾何点Eを定義し表示する
// cL_2_2 はcLの第2要素の第2座標(y座標)
// プログラム上は幾何点D,E,Fを表示する必要は無いが
// プログラムを作るとき点の位置を見ながら作業できる
// シンデレラを使う重要な意味の一つがここにある
Putpoint("F",[C.x,(cL_10_2+cL_11_2)/2]);
Listplot("AC",[A,C],["nodisp"]);
// Listplot によってデータsgACができる
// オプション["nodisp"]により表示はしない
Listplot("AE",[A,E],["nodisp"]);
Listplot("AF0",[A,F],["nodisp"]);
Lineplot("1",[B,B+[0,1]],["nodisp"]);
// Lineplot によって直線データln1ができる
tmp=Intersectcrvs("ln1","sgAE");
// 2曲線の交点リストをtmpに代入する
// 交点が一つでもtmp=1,2となるので交点を
// 取り出すには tmp_1 とする必要がある
Putpoint("D",tmp_1);
sL=["A","B","C","D","E","F"];
pL=[A, B, C, D, E, F];
forall(1..6, Circledata(sL_#, [pL_#, pL_#+vr]));
// この3個の命令は以下の6個の命令と同じ
tmp=Intersectcrvs("sgAE","crA");
A1=tmp_1;
tmp=Intersectcrvs("sgAE","crD");
X=tmp_1; Y=tmp_2;
if(X_1<Y_1, D1=X;D2=Y, D1=Y;D2=X);
tmp=Intersectcrvs("sgAE","crE");
E1=tmp_1;
tmp=Intersectcrvs("sgAC","crA");
A2=tmp_1;
tmp=Intersectcrvs("sgAC","crB");
X=tmp_1; Y=tmp_2;
if(X_1<Y_1, B1=X;B2=Y, B1=Y;B2=X);
tmp=Intersectcrvs("sgAC","crC");
C1=tmp_1;
tmp=Intersectcrvs("sgAF0","crA");
A3=tmp_1;
tmp=Intersectcrvs("sgAF0","crF");
F1=tmp_1;
// この一連の命令は
// A,B,C,D,E,Fを中心とする円と各点を結ぶ線分との
// 交点を求めて変数A1,...,F1に代入する
// if(<bool>,<expr1>,<expr2>) は条件 <bool> が真
// であれば <expr1> が評価され、そうでなければ
// <expr2>が評価される
Setcolor([0.8,0,0,0]);
Listplot("AD",[A1,D1]);
// データの名前はsgADとなる
pL=[E, C, F];
k=1;
forall(pL, Z,
 forall(1..4,
  Listplot("tmp",[Z, cL_k],["nodisp"]);
  X=Intersectcrvs("sgtmp","cr"+text(Z));
  Y=Intersectcrvs("sgtmp","cr"+text(k));
  Listplot(text(k),[X_1,Y_1]);
  k=k+1
 )
);
// 右側の12個の円とRを中心とする円とを線分で結ぶ
// forall による2重反復
// 外側の forall に着目する.
// Z は明示的な繰り返し変数(#は暗黙な繰り返し変数)
// Z にはリストpLの中身が順次代入される
Setcolor("black");
pL=[A, B, C, D, E, F];
sL=["P","Q","R","Q","R","R"];
Com2nd("Fontsize('s')");
forall(1..6, Letter(pL_#, "c", sL_#));
forall(cL, Letter(#, "c", "S"));
Com2nd("Fontsize('n')");
// 全ての円の中心に文字を書き入れる
// Com2nd("Fontsize('s')"); はフォントサイズを
// small にする命令
最終更新:2016年10月30日 13:23
|新しいページ |検索 |ページ一覧 |RSS |@ウィキご利用ガイド |管理者にお問合せ
|ログイン|