学校(教育)ソフトウェアの開発・販売

実際の作図例

 『テプロス』および『ドリオス』には、図形を描くための多くのコマンド(命令文)が用意されています。そのコマンドの使い方を具体例を挙げながら説明します。
 下記において、半角英字の命令文はシステム本体のコマンドで、日本語表記の命令文はそれらのコマンドを組み合わせて作成した図形ルーチンのコマンド(変更可能)です。
 なお、『テプロス』および『ドリオス』に搭載されているすべてのコマンドとその仕様については、体験版を ダウンロード したのち、[ヘルプ]−[使用方法]から確認できます。

作図枠を設ける場合

 一般に、図形やグラフは、作図枠を用意してその枠内に描きます。
 作図枠を設けることによって、座標設定が分かりやすくなる上、作図枠をよけて文章を記述できます。ただ、作図枠を設定した場合、属性付きの行(;T、;B、;P、;A、;H、;S、;R、;Nで始まる行)では、\Picture(…)〜\EndPic()までを改行せずに詰めて記述する必要があります。下記の説明では、命令文の内容を分かりやすくするために、命令文毎に改行可能な行属性なしで記述してあります。

直角三角形の辺と角
2円と交点
接弦定理
2次関数のグラフ
図形の塗りつぶし
領域の図示
三角方程式と単位円

直角三角形の辺と角

 直角三角形を描き、頂点、辺の長さ、角度を描いてみます。

\Picture(40,40,L)幅40o×高さ40oの作図用の枠を左端(Left)に用意する。
\Point(P,0,0)枠の左下隅を点Pとする。
\Point(Q,40,40)枠の右上隅を点Qとする。
\Box(PQ)線分PQを対角線とする長方形(枠)を描く。
\Scale(6,6)枠の幅および高さをそれぞれ6等分した長さを1目盛とする。
\Origin(1,2)枠の左下隅に対して(1,2)の点を原点とする。
\Point(A,0,0)点A(0,0)とする。
\Point(B,4,0)点B(4,0)とする。
\Point(C,4,3)点C(4,3)とする。
\Line(ABCA)線分AB,BC,CA(△ABC)を描く。
\直角(ABC,.5)∠Bに直角記号を0.5のサイズで描く。
\角(BAC,1)∠Aに角記号を半径1のサイズで描く。
\Label(A,A,B)点Aの真下(Bottom)に"A"を書く。
\Label(B,B,BR)点Bの右下(BottomRight)に"B"を書く。
\Label(AC,C,T)線分ACの先端(Top)に"C"を書く。
\Label(A,θ,15゚,1.2)点Aを中心し半径1.2、角度15゚の位置に"θ"を書く。
\FontTransparent(0)文字を上書きモードに設定する。
\DrawStyle(2)線の種類を点線に設定する。
\LabelArc(AB,4,R)線分ABの右側(Right)に円弧と"4"を書く。
\LabelArc(AC,5,L)線分ACの左側(Left)に円弧と"5"を書く。
\EndPic()作図を終了する。

2円と交点


\Picture(40,30,L)幅40o×高さ30oの作図用の枠を左端(Left)に用意する。
\Scale(8,6)枠の幅を8等分、高さを6等分した長さを1目盛(=5o)とする。
\Point(A,3,3)大きい円の中心をA(3,3)とする。
\Point(B,5,3)小さい円の中心をB(5,3)とする。
\FillColor(Cyan)
\FillStyle(3)
\Circle(A,3)
点Aを中心とする半径3の円の内部を水色の右下がり斜線で塗りつぶす。
\FillColor(Yellow)
\FillStyle(4)
\Circle(B,2)
点Bを中心とする半径2の円の内部を黄色の右上がり斜線で塗りつぶす。
\FillStyle(0)塗りつぶしを通常モードに戻す。
\ForeColor(Blue)
\Circle(A,3)
大きい円を青色で描く。
\ForeColor(Red)
\Circle(B,2)
小さい円を赤色で描く。
\2円交点(A,3,B,2,LR)2円の交点をL,Rとする。
\ForeColor(Black)描画色を黒に戻す。
\FillColor(Black)塗りつぶし色を黒に戻す。
\白丸(L,0.2)点Lに半径0.2の白丸を描く。
\黒丸(R,0.2)点Rに半径0.2の黒丸を描く。
\EndPic()作図を終了する。

接弦定理


\Picture(40,40,L)幅40o×高さ40oの作図用の枠を左端(Left)に用意する。
\Scale(2)枠の幅および高さをそれぞれ2等分した長さを1目盛とする。
\Origin(1,1)枠の左下隅に対して(1,1)の点を原点とする。
\Point(O,0,0)点O(0,0)とする。
\黒丸(O,0.03)点Oに半径0.03の黒丸を描く。
\Circle(O,1)点Oを中心とする半径1の円を描く。
\Point(A,0,-1)点A(0,-1)とする。
\Point(B,Cos(6゚),Sin(6゚))点B(cos6゚,sin6゚)とする。
\Point(C,-Cos(6゚),-Sin(6゚))点C(-cos6゚,-sin6゚)とする。
\Point(D,-1,-1)点D(-1,-1)とする。
\Point(E,1,-1)点E(1,-1)とする。
\Label(O,O,T)点Qの真上(Top)に"1"を書く。
\Label(OA,A,T)線分OAの先端(Top)に"A"を書く。
\Label(OB,B,T)線分OBの先端(Top)に"B"を書く。
\Label(OC,C,T)線分OCの先端(Top)に"C"を書く。
\Label(DE,T,T)線分DEの先端(Top)に"T"を書く。
\Line(ABCA)△ABCを描く。
\Line(DE)線分DEを描く。
\角(EAB,0.25)∠EABに角記号を半径0.25のサイズで描く。
\角(CBA,0.25)∠CBAに角記号を半径0.25のサイズで描く。
\角二等分点(EAB,.25,P)∠EABの二等分線上で,Aから0.25の距離にある点をPとする。
\Label(AP,42゚,T)線分APの先端(Top)に"42゚"を書く。
\角二等分点(CBA,.25,P)∠CBAの二等分線上で,Bから0.25の距離にある点をPとする。
\Label(BP,θ,T)線分BPの先端(Top)に"θ"を書く。
\EndPic()作図を終了する。

2次関数のグラフ

 2次関数などの曲線は、微小の線分を繋げて描きます。
 ポイントは、線分同士が滑らかに連続しているように見える程度に細かくすることです。
 (ただし、出力機器の解像度より細かくしても描画時間がかかるだけで無意味となります。)

\Picture(50,50,L)幅50o×高さ50oの作図用の枠を左端(Left)に用意する。
\Scale(5)枠の幅および高さをそれぞれ5等分した長さを1目盛とする。
\Origin(1,2)枠の左下隅に対して(1,2)の点を原点とする。
\座標軸(-1,3,-2,3)-1≦x≦3,-2≦y≦3の範囲で座標軸を描く。
\{u=-1:v=3:x=-1:k=.05}始めの点を(-1,3)、x座標を-1、刻み幅kを0.05とする。
(刻み幅kの値は解像度に応じて変更が必要)
\Do\Untilまでを繰り返す。
 \{x=x+k:y=x^2-2x}x座標を更新し、y座標の値を求める。
 \Point(A,u,v)直前の点をAとする。
 \Point(B,x,y)現在の点をBとする。
 \Line(AB)線分ABを描く。
 \{u=x:v=y}現在の点を直前の点とする。
\Until(x>=3)x≧3になるまで\Do以下を繰り返す。
\Point(P,1,-1)点P(1,-1)とする。
\Point(Q,1,0)点Q(1,0)とする。
\Point(R,0,-1)点R(0,-1)とする。
\DrawStyle(2)線の種類を点線に設定する。
\Line(PQ)線分PQを描く。
\Line(PR)線分PRを描く。
\Label(Q,1,T)点Qの真上(Top)に"1"を書く。
\Label(R,-1,L)点Rの左(Left)に"-1"を書く。
\Point(S,2,0)点S(2,0)とする。
\Label(S,2,BR)点Sの右下(BottomRight)に"2"を書く。
\Point(T,3,3)点T(3,3)とする。
\Label(T,y=x^2-2x ,BL)点Tの左下(BottomLeft)に"y=x^2-2x "を書く。
\EndPic()作図を終了する。

図形の塗りつぶし

 長方形や円(楕円を含む)の内部を塗りつぶすコマンドは用意されていますが、これ以外の図形を塗りつぶす手順は、次のようになります。
@塗りつぶす図形内において、線分を密に描きます。
 ポイントは、線分同士に見た目の隙間ができない程度に密にすることです。
 (ただし、出力機器の解像度より密にしても描画時間がかかるだけで無意味となります。)
A図形を描きます。
 図形が塗りつぶしによって消されないように、塗りつぶし後に図形を描きます。

\Picture(50,50,L)幅50o×高さ50oの作図用の枠を左端(Left)に用意する。
\Scale(5)枠の幅および高さをそれぞれ5等分した長さを1目盛とする。
\Origin(1,2)枠の左下隅に対して(1,2)の点を原点とする。
\{x=-1:k=.01}x座標の初期値を-1、刻み幅kを0.01とする。
(刻み幅kの値は解像度に応じて変更が必要)
\Do\Untilまでを繰り返す。
 \{y=x^2-2x}y座標の値を求める。
 \If(y>0)
  \ForeColor(Red)
 \Else
  \ForeColor(Blue)
 \EndIf
y>0ならば描画色を赤に、y≦0ならば青に設定する。
 \Point(P,x,y)点P(x,y)とする。
 \Point(H,x,0)点H(x,0)とする。
 \Line(PH)線分PHを描く。
 \{x=x+k}x座標を更新する。
\Until(x>3)x>3になるまで\Do以下を繰り返す。
\ForeColor(0)描画色を黒に戻す。
\座標軸(-1,3,-2,3)-1≦x≦3,-2≦y≦3の範囲で座標軸を描く。
\Point(A,2,0)点A(2,0)とする。
\Label(A,2,BR)点Aの右下(BottomRight)に"2"を書く。
\Point(B,3,3)点B(3,3)とする。
\Label(B,y=x^2-2x ,BL)点Bの左下(BottomLeft)に"y=x^2-2x "を書く。
\EndPic()作図を終了する。

領域の図示

 領域を斜線で図示する手順は、次のようになります。
@領域を完全に含む長方形の内部を斜線で塗ります。
 (長方形や円の内部を斜線で塗るコマンドは用意されています。)
A斜線の不要部分を背景色(白)で塗りつぶします。
B座標軸やグラフを描きます。
 座標軸やグラフは、Aの影響を受けないように、領域を図示した後で描きます。

\Picture(60,45,L)幅60o×高さ45oの作図用の枠を左端(Left)に用意する。
\Scale(4,3)枠の幅を4等分、高さを3等分した長さを1目盛(=15o)とする。
\Origin(1,1)枠の左下隅に対して(1,1)の点を原点とする。
\Point(P,0,0)
\Point(Q,2,1)
\FillStyle(4)
\Box(PQ)
2点P(0.0),Q(2.1)を頂点とする長方形の内部を右上がり斜線で塗りつぶす。
\ForeColor(White)
\{x=0:k=.01}
\Do
 \{y=-x^2+2x}
 \Point(P,x,y)
 \Point(H,x,1)
 \Line(PH)
 \{x=x+k}
\Until(x>2)
0≦x≦2における放物線 y=-x^2+2x の上側を白色で塗りつぶす。
(不要な斜線を消す。)
\ForeColor(Black)描画色を黒に戻す。
\座標軸(-1,3,-1,2)-1≦x≦3,-1≦y≦2の範囲で座標軸を描く。
\{x=1:u=x:v=-u^2+2u:k=.05}
\Do
 \{x=x+k:y=-x^2+2x}
 \Point(A,u,v)
 \Point(B,x,y)
 \Line(AB)
 \Point(C,2-u,v)
 \Point(D,2-x,y)
 \Line(CD)
 \{u=x:v=y}
\Until(y<=-1)
頂点の位置から左右同時にy≦-1になるまで放物線を描く。
\Point(S,2,0)
\Label(S,2,BL)
点S(2,0)の左下(BottomLeft)に"2"を書く。
\Point(T,1.3,1.3)
\Label(T,y=-x^2+2x,R)
点T(1.3,1.3)の右(Right)に"y=-x^2+2x"を書く。
\EndPic()作図を終了する。

三角方程式と単位円


\{z=3.14159}zを円周率πとする。
\Picture(60,60,L)幅60o×高さ60oの作図用の枠を左端(Left)に用意する。
\Scale(3)枠の幅および高さをそれぞれ3等分した長さを1目盛とする。
\Origin(1.5,1.5)枠の左下隅に対して(1.5,1.5)の点を原点とする。
\Point(O,0,0)点O(0,0)とする。
\座標軸(-1.3,1.3,-1.3,1.3)-1.3≦x≦1.3,-1.3≦y≦1.3の範囲で座標軸を描く。
\Circle(O,1)単位円を描く。
\Point(A,1,0)点A(1,0)とする。
\Point(B,0,1)点B(0,1)とする。
\Point(C,-1,0)点C(-1,0)とする。
\Point(D,0,-1)点D(0,-1)とする。
\Label(A,1,BR)点Aの右下(BottomRight)に"1"を書く。
\Label(B,1,TL)点Bの左上(TopLeft)に"1"を書く。
\Label(C,-1,BL)点Cの左下(BottomLeft)に"-1"を書く。
\Label(D,-1,BL)点Dの左下(BottomLeft)に"-1"を書く。
\Point(P,Cos(1/6z),Sin(1/6z))点P(cos(π/6),sin(π/6))とする。
\Point(Q,Cos(5/6z),Sin(5/6z))点Q(cos(5π/6),sin(5π/6))とする。
\DrawWidth(2)線の太さを2(画面では分かりにくい)に設定する。
\Line(OP)動径OPを描く。
\Line(OQ)動径OQを描く。
\DrawWidth(1)線の太さを1(規定値)に戻す。
\黒丸(P)点Pに黒丸を描く。
\黒丸(Q)点Qに黒丸を描く。
\角矢(AOP,0.3)動径OPの表す角を半径0.3のサイズで描く。
\角矢(AOQ,0.2)動径OQの表す角を半径0.2のサイズで描く。
\Label(OP,P,T)線分OPの先端(Top)に"P"を書く。
\Label(OQ,P',T)線分OQの先端(Top)に"P'"を書く。
\Point(M,-1.3,1/2)点M(-1.3,1/2)とする。
\Point(N,1.3,1/2)点N(1.3,1/2)とする。
\Line(MN)線分MNを描く。
\Label(MN,y=1/2,T)線分MNの先端(Top)に"y=1/2"を書く。
\EndPic()作図を終了する。