FM実践グラフィックス

Survival, Water, Medical Field Manuals

Military Manuals

株式会社 山海堂

Document text

其 健 か ら ヨ 次 元 じ . ま で 
田島 清 悟 著 


山海 党 


FIM * 引 グラ フィ ックス 


ーーー ツ デーーーーーーーーーーー バ ーー 


コン ピュ ー ク タク が 個人 で 所 有 で きる 時 代 と な っ て , わずか 数 年 の 月 日 を 経た に 過ぎ ませ ん が , 
マイ クロ プロ セッ サ 。 マイコン, パソ コン と 呼び 名 が 移り 変わ る と と も に , その 性能 は 目 を 見 


は る ば か り に 向上 し て きま し た 。 

か つて ン 億 円 ち し た コン ピュ ー タ と ほぼ 同じ 性 能 の も の が , 10 万 円 そこ そこ で 手 に 入る よう 
に な っ て きた わけ で すか ら , これ は 称 異 と ょ りな ん だ か 人 愉快 な 気分 に ちな っ て きま す 。 

パソ コン の 普及 に 伴い , 供 絡 され る ソフ ト も 豊富 に 出揃い , また 刊行 され る 専門 雑誌 $ 多 種 
多様 と な っ て 書店 の 店 先 を 賑わし て いま す 。 誰 も が 気軽 に コン ピュ ー タ を 楽し め る よう に な っ 
た 反面 , パッケ ー ジ ソフ ト や 雑誌 で 公開 され る プロ グラ ム の ほとん ど が ゲー ム で 占め られ て い 
る 現状 に は , 少し ば か り 疑 問 が 残り ます 。 せ っ か く の 高 性 能 パ ソコ ン 。 も う 少 し 知 的 な 生産 の 
た め の 稼 動 を 考え て も 良い 時 期 か もち し れ ま せん 。 

本 書 は , 8 ビット 機 と し て 能力 的 に 過 不 足 の な い 富 士 通 製 FM-7。 NEW7, 77, AV を 用 い 
て , グラ フィ ッ ク の 基礎 か ら 3 次 元 C.G まで を 解説 し , また 建築 や デザ イン な ど に 使用 で きる 
実用 性 を 持た せ た プ ログ ラム も 掲載 し て み ま し た 。 

第 1 章 の 写真 お よび 図 は , すべ て 本 書 に 掲載 し た プロ グラ ム て で 作成 し た も の で す 。 し ば し 手 
を 休め て , パソ コン グラ フィ ックス の 可能 性 に つい て 考え て 戴け れ ば 幸い に 思い ます 。 

な お 。 文中 FM-7 と ある と ころ は , みな さん の 機種 に 合わ せ て NEW-7, 77, AV と 置き か 
えて お 読み くだ さい 。 ま た , 本 書 の プロ グラ ム は F・BASIC Ver. 3 の 環境 下 で 動作 し ます の で , 


AV 使用 時 は , Ver.3 の シス テム を 立ち 上 げ て か ら 使 用 し て 下さ い 。 


補 災 災 ※ プロ グラ ム メ ディ ア の 頒布 サー ビス に つい て 放談 炎 を 


本 書 に 収載 され て いる プロ グラ ム の うち , スケッチ ボ ー ド , 3DGND 2, 3DWLD 2, 3DW/HS の 4 
本 と 参考 デー タ を フロ ッ ピ ー デ ィ ス ク に 収録 し て , 希望 者 に 頒布 いた し ます の で ご 利用 くだ さい 。 
この 頒布 は 入力 する 時 間 の な い 読 者 の 便 を 図っ て 行なう も の で す 。 下 記事 項 を ご 了承 の うえ お 申し 込み 
くだ さい 。 
@ ディ スク 自体 の 構造 上 の トラ ブル 等 に よる 読み 込み 不可 能 な 場合 に は , 無償 で 交換 させ て いた だ きま 
す の で , お 手数 で す が 当 社 着払 いで ご 返送 くだ さい 。 
@ 読者 が 個人 で 使用 する 以外 は , 本 プロ グラ ム 内 容 の 一 部 も 
法 で も 複写 ・ 複 製 し た り , Ei) 転用 する こと を 禁じ ま 
@ 受付 け て か ら 発送 まで 約 1 週間 を 要 し ます の で 予め ご 半 の SN 
⑯ お 申し 込み 方 法 
@ 頒 価 は 1 部 に つき , 5 イン チ 8000 円 。3.5 イン チ 8.500 円 (送料 は 当社 で 負担 し ます )。 
@ 下記 の 申し 込み 形式 に 従っ て 必要 事項 を 明記 の うえ 現金 封筒 で お 申し 込み くだ さい 。 


の な る 


@ 申し 込み 先 113 東京 都 文京 区 本 郷 5 一 5 一 18 山海 堂 営業 部 メデ ィ ア サー ビス 係 
申し 込み 形式 


"ーー  、 


5 イン チ 


950 に ンク 


FM-7・FM-NEW 7・FM-77 FM 実践 グラ フィ ックス 


SCREEN 
SYMBOL 


3 章 実践 プロ グラ ミン グ 


圏 プロ グラ ミン グ の カン どこ ろ 
賠 グラ フィ ッ ク ・ デ モン スト レー ショ ン 
田 パソ コン で 絵 を 描こ う 

軒 絵 を 描く プロ グラ ム 


@ CONNECT 文 内 に 直 携 格 机 eee 42 


倫 DATA 文 に 格納 し 。READ 命令 で 読み 出す oro 43 

介 配列 に 44 

借 メ モリ に 直接 格 細 ee 45 

供 外部 記憶 装置 に 格納 ooo 45 

較 デザ イン ・ シ ー ト を 使 お うう oo 45 
較 スケ ッ チ ボー ド プ ログ ラム の 作成 GOGOGGOOGGOSGOOSOGGOSXXOODGKOCCGGCGOOGGGDEUOOGG 47 
較 グラ フィ ッ ク ナ カー ソル で で ooo 48 
イ グル ルー GODOCqGOGCOGOOOQGOCGGGGGOGOCGGCGGGGGOCGOCOHGCOGSGOOGGOGGOGOCCGGCCP OKOCOCOO 48 

| 盾 00JLIINIO 法 GOOOOO0DCOOEEOOSOOOGOOSDCEOGOOGCCCOOOCOCOC2LOOYYCCOX2CEOOCCCODOCOOCOOUOC 52 
ー | (人 め AN 0N 人 。GOOOGGOGGOOOQGGGGGOCGGOOOOOGOOCOOGOOOGGOOHCOCOOCOGGOCOOOGCGOCOCOCGOG CO こ OGPC も OOOOOO 52 
| | (人)」RAUNS CdGOCOOGGO0QOGOOCOOGOGGGOdGOOGGGOGGOOGGOJOOOGG OCGGCCXOOCOO ご CGCOOGOOCOC 53 
| (60)(CJU RAC)LJD.QOGODGGQGOOOGOGOOGGOOOGOGOGGOGGGGCGGOGXGCHGCKCCOOLCOCOCCOCCOCCCOOGGCS ス COCCOOOGOOGOO 54 
時 (5) SAVE …… 54 
| 財 ( 軸 070DDECOGCSCOOOOOGOUPCOOGEG22 つ つつ COO つつ つこ 2 は COOCOCOOC 54 
得 デー タ の 構造 で 人 ie 54 
入っ COHCEE2HDGGGCPGCLGDCSLTEPCG2YOO プ EL スウ Cr 56 

| 中 間 色 の 表現 方 法 SOCOoGGOOGGOCGGOGKOGSG2GDGOGDOOOCCGOG つ も OGSOCGOOOO2GO0GOOCOSODCOOOOOOOOGDOC 58 
男 2 色 の 組み 合わ せ で 作る 中 問 色 ニー 本 
因 3 色 の 組み 合わ せ で 作る 中 問 色 oi 61 
軸 画面 情報 の 直接 転送 法 と スケ ッ チ ボー ド 2 …… ド imimnnn 62 
証 転送 の 実験 ……… ド oo 63 
マジ ンコ の 1 が Co) 2 本 CCC つ 2 も 2 32003 つつ CC つ つう と プス フス 3 64 
軒 変数 の 格納 法 を 知る oon 64 
記 デー タ を すり 著 え る eee 65 
攻 画面 転送 プロ グラ ム の 実際 … 必 eee 67 


[ 4 章 3 次 元 グラ フ 3 電 っ 


日 画面 座標 系 と 原 座標 系 DDCPPPOPCOCPOODCCDCCCCCUCUULCCOCCLOOCCOOOOCC に CCCCCCPCCCPCC 72 
圏 座標 系 の 変換 (画面 座標 一 原 座標 ) DPOCDOCOOCCDOCCCCDCCPDCCPCCOCOOCCPPCC と CPP 73 
賠 2 次 元 図形 の 平行 移動 DPDDOCCPCOCCOOCOCOCCOOOOOCCCLOOOOCXPOOXXOOPOCCCODCCPCCPL OPC 74 


園 ク 次 元 図形 の 拡大 お よ び 縮 小 POCPOCCCOCPOOOODDCCOOOOOOODOCO プ LOPLLLCCKCKLCPCCLLLOD つ つの 76 
中 図形 の 回 寺 immc 76 


園 大 切な クリ ッッ ピ ンク 78 
較 クリ ッ ピン グ の 条件 OCZXGDCoOrZY CPLDO の COCCooGOOCCOOOoCOCO と 79 


日 図形 加工 の サ ンプ ルプ ログ ラム otftfztst 81 
較 3 次 元 座標 COCCOOCCOCCPCCOPCOOPCPOC2PCOOOOCZCCO つ DOCCCPCODCCCPCCCCDOCPCOCCOC COCCO 84 


剛 3 次 元 モ デル の 形状 作成 手法 の CZ の CCCODOUOCCCOCCCOCCOGCCOLLCCCCCCOOOO つ CC 85 


周 座標 値 と 3 面 図 と と 対応 …… ド mm 86 
財 3 次元 空間 の 座標 変換 ハバ バ tion' 88 


較 各 軸 まわ り の 回 転 実 験 1 … 92 
田 回 転 実験 プロ グラ ムー …… ポ ooo 96 


較 サン プル デー ター……ー ド ドド に ーー 2 20 ジー コー 99 
5 音 3 次 元 実 用 プロ グラ ム 3 題 隊 の > おら デン た し と っ CCCC PC だ 102 


剛 3 次元 地形 図 プ ログ ラム (3D GROUND ん ) 証 ECOEECCCOEPECCCE 102 
劉 プロ グラ ムン 実行 八 ポ iti… 103 
蘭 デー の 新規 作成 還 22233eeo 02 くく 5 で の ご 2 こと 103 
立体 図 の 指 画 ee 105 
ステ レオ 立体 関 110 

ンー クン 四 CCCCCCC と OOooGccCC6CGEP8CGCO5CECOCCCCoocCCOcCCOOCCOCOcOCOoC こ CCCCCGCCE つ CC デー 112 


IT 
パ 
アル 
ii 
| 
[ 
1 


軒 3 次 元 モデ ル 形 状 作 成 プ ログ ラム (3D WORLD V2) ……… 121 


軒 プログ ラム の 構造 と 機能 ooo 121 
価 スイ シメ 121 
全面 図 モー 123 
代 省力 的 入力 法 WALL & CIRCLE で 126 

較 アク ショ ン モ キー ドド 全 IT 131 
人 ディ スク の 無い 場合 の 実行 ooo 135 

園 3 次元 高速 描画 バー ジョ ン (3D WORLD V2.1 Hispeed version) 
6065COG5BOGO85068oc 150 

プロ グラ ム マ 実行 ri 150 

アク ショ ン エ キー ドド 0 に ooo 151 

届 オー ト ア ニメーション モエ モード 0 で の の 152 

| いい こい た っ いむ ん ば くそ の YO た で よう. っ 153 

時 ロー ラン ド DG 製 プロ ッ タ 使用 時 の 変更 点 …… へ …imeoe ereeremrrerr 154 

マシ ン 語 プログ ラム の 和 A 力 法 orioiriririhihihii 155 
価 マシ ン 語 モニ ター に oo 155 
但 マシ ン 語 の 保存 の ee 157 

ハイ スピ ー ド バー ジョ ン の 構成 ooo 157 


園 立体 図 の 陰線 消去 法 と ペイ ント 法 oo 167 


写真 と 図 で る 
グラ フィ ックス 


『 間 67 10 1 317-1 
82080: 2 
約 )-% り ET を 


129 MX 
149『(R 5( が s1 9 7 
7,8( 


円 PSET で 描い た サイ ンカ ー ブ (第 2 章 2IP) [ 引 SCREEN の 実験 (第 2 章 30P ) 
[3] 2 色 で 作る 中 間 色 . 左 は 縦 」 右 は 斜め 並び の ドッ ト (第 3 章 59P ) 
[4] 2 色 の 組み 合わ せ で 作っ た 中 間 色 チャ ー ト (第 3 章 60P ) 


@ 1 童 写真 と 図 で 級 る グラ フィ ックス 


回 [乱数 で 描い た デモ 画面 (第 3 章 39P ) 

[8 規則 性 を 持た せ て 描い た デモ 画面 (第 3 章 39P ) 

還 決 め ら れ た 手順 に 従っ て デー タ を 読み , アル ファ ベッ 
ト の FM を 描い た 実行 例 (第 3 章 43P ) 


gr203 
図形 の 2 次 元 回 転 
(第 4 章 8IP) 


【 3 次 元 図形 の 表現 (第 4 章 96P ) 


山 l 較 3 衣 板 の 3 次 元 連続 回 転 (第 4 章 92P ) 


7 の 0 ] 章 写真 と 図 で 級 る グラ フィ ックス 


[8 スケッチ ボー ド フ ログラム て 適当 に 描い た 絵 


IrG ー こま 符 全 ヒ た - 回 旦 - 
9 フラ ン シ 機 能 を 利用 し た 風 


E 園 ? FP 196 
jR SsSRVE 6=LOD VRMS 條 な END 


20 LINE 機 能 で 線画 を 描き , 名 PAINT 機能 で 色 を 塗り 完成 し た 画面 


スケ ッ チ ボー ド (第 3 章 47P) で 
描い た 絵 

南極 観測 船 「 し ら せ 」 

23 舞 

4 算 用 車 

gg 皇居 周辺 の 地図 


77 


6:LOD 7=VRMMS 人 L ED 


72 グ 1 章 号 真 と 図 で 級 る グラ フィ ックス 


3 次 元 地形 図 

(第 5 章 102P ) 

Eg ワ イヤ ー に よる 地形 表 
現 

陰影 表現 (カラ ー デ ィ 
スプ レイ ) 

ga 陰影 表現 (グリ ー ン デ 
ィ ス プレ イ ) 

9 ステ レオ 立体 図 

BO 高 度 列 色分け 表現 

BB2 箱 根 周辺 の ステ レオ 

立体 図 と 陰 涼 を 付け た 

立体 図 


7 マ 


3 次 元 形状 作成 (第 5 章 121P) 

B3B4 副 都心 高層 ビル の 立体 図 生 成 

9 対話 形式 に よる デー タ 入 力 と 副 都 心 の 3 面 図 
B9 対 話 形 式 に よる デー タク 入力 と 間取り の 3 面 図 
対話 形式 に よる デー タク 入力 と 飛行 機 の 3 面 図 


ルレ 


| で 航 る グラ 


と 区 


テ ュ 6r 
!L 
うさ 


3 


立体 図 の ペイ ント (第 5 章 167P ) 


層 ビ ル 


高 


B 心 の 


品 | 居 


国 J で 


42 ベ イン ト を 実行 し た 


4( 


75 


パー ジョ ン ブ プログラム) 


固 3 次 元 モデ ル の ブロ ッ タ 出力 例 (3D WORLD ハイ スピ ー ド ノ 


アニ メ 風 戦 開 機 


副 都心 の 高層 ビル 群 


家 の 間 取り 


写真 と 図 で 角 る グラ フィ ックス ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー~ー 


1 章 


り 


還 
固 


アコ ン の 作 


@ 見 る 角度 を 変え て フロ ッ タ に 出力 し た エ 


1 
水平 位置 か ら 見 た 家 の 内 部 


一 縦 め 上 か ら 見 た 家 の 間 取り 


一 都心 の 高層 ビル 末 


@ ブフ ロッタ て 作画 し た 立 
体 図 の 不要 (陰線 ) な 
と ころ を 省 い て トレ ー 
ス し た 例 . 

フ プレ ゼン テー ショ ン や , 
印刷 物 の 原稿 と し て 最 
敵 . 


写真 と 図 で 起 る グラ フィ ックス 


1 章 


78 


へ 


5 ペグ リリ コン (ドー 


体 較 


ーー 
HIA 


@ ト レー ス し } 


この 章 は F-BASIC Ver3 の サポ ボー ト す る グラ フィ ッ ク 古 令 に つい て 解説 し て い 


ベー ジック を 学ぶ と き ,。 PRINT や INPUT か ら 始め る こと も 意義 の ある こと で す が , グラ 


命令 各個 に つい て は 。 本体 付属 の マニ ュ 
で は それ ら に つい て 遂 一 述べ て いま せん 
を 読み 進め て くだ さい 。 
な お , 本 文中 の 形式 の 説明 で 使用 され る [ ] 内 は 省略 し て も よい こと を 示し て いま す 。 


| PSET (point set / ポ イン ト セ モット) 


画面 の 任意 の 位置 に ドッ ト を 表示 し ます 。 
[ 形式] PSET (水平 位置 , 垂直 位置 「, カラ ー 番 : 
水平 位置 は 0 て 639, 垂直 位置 は 0 て 199 の 範囲 
で 設定 し ます 。 カ ラー 番号 は , その 位置 に 表示 


きせ る ドッ ト の 色 を 指定 し ます 。 


320, 100 


PSET (320, 100, 2) 


( 図 2-1) 


78 1 章 写真 と 図 で 級 る グラ フィ ックス 


20%&50%) を 貼っ た 完成 見 本 


777】 


@ ト レー ス し た 立体 図 に スク リー ント ー ン ( ア 


グラ フィ ックス 


この 章 は F-BASIC Ver 3 の サポ ー ト する グラ フィ ッ ク 命 令 に つい て 解説 し て いま す 。 

ベー シッ ク を 学 忘 とき, PRINT や INPUT か ら 始 め る こと も 意義 の ある こと で す が , グラ 

フィ ッ ク か ら 手 掛け る と , 楽し みな が ら 覚 えら れる 利点 ちあ る よう で す 。 グラフィック 以外 の 
詩 


命令 各個 に つい て は , 本 体 付属 の マニ ュ ア ル や 他 の 入門 書 に 詳し く 書 か れ て いま す の で , 本 書 


人 生 
で は それ ら に つい て 逐一 述べ て いま せん 。 マ ニュ アル 等 て 基本 的 な 命令 を 確認 し な が ら , 本 章 
を 読み 進め て くだ さい 。 

な お , 本 文中 の 形式 の 説明 で 使用 され る [ ] 内 は 省略 し て も よい こと を 示し て いま す 。 

PSETT (point set / ポ イン ト セ ッ ト ) 

画面 の 任意 の 位置 に ドッ ト を 表示 し ま 

[形式 ] PSET (水平 位置 , 垂直 位置 [。 カラ ー 番 号 ] [, 機能 ]) 
水平 位置 は 0 て 639, 垂直 位置 は 0 て 199 の 範 


国 


で 設定 し ます 。 カ ラー 番号 は , その 位置 に 表示 


させ る ドッ ト の 色 を 指定 し ます 。 
320, 100 


PSET (320, 100, 2) 


( 図 2-1) 


20 2 章 基礎 の グラ フィ ックス 


これ で 画面 中 央 に 赤い 点 が セッ ト さ れ ま す 。 形式 の 最後 の 機能 と は F-BASIC 独特 の も の で 
背景 色 と 表 示 色 の 論理 演算 の 結果 の 色 を 表示 させ ます 。 機 能 は AND, OR, XOR の 三種 類 を 
指定 で き , PSET 以外 に LINE や CONNECT 等 の 命令 で 使う こと も で きま す 。 少し 遇 し く な 
り ま す が , 参考 に 論理 演算 の 結果 を 次 に 示し て お きま す 。 

10 PSET (320, 100, 2) 

20 PSET (320, 100, 4,。 て) 
ペペ 部 を OR と する と 

010 (BIN) ~ 2 (DEC) 

100 (BIN) ~ 4 (DEC) 

110 
と な り OR (論理 和 ) は 6 に な り , 黄色 の ドッ ト が 表示 され ます 。 な お BIN は 2 進 法 , DEC 
は 10 進 法 を 表し て いま す 。 

AND (論理 積 ) を と る と 
010 (BIN) < 2 (DEC) 
100 (BIN) ~ 4 (DEC) 


000 
と な り , 表示 色 は 黒 で 背景 色 と 区 別 が つか な く な り ま す 
同様 に XOR (排他 的 論理 和 ) に する と 
010 (BIN) -2 (DEC) 
100 (BIN) 4 (DEC) 


110 
で , 黄色 の 表示 と な り ま す 。 2 進 法 と か 論理 演算 と か 耳慣れ な い 言 葉 が で て きま し た が , 今 は 
の か と 辿っ て く だ け で 構い ませ ん 。 ま た , 2 進 法 の 演算 式 を プチ ャ ゴチ ャ 入れ まし 


た が , 式 の 結果 は ダイ レク トモ ー ド で 簡単 に 求め る こと も で きま す 。 


PRINT 2 AND 4 
PRINT 2 XOR 4 


27 


リス ト 2-1 は , XX と Y を 乱数 に よっ て 決め , 画面 に 点 を 500 個 描 か せま し た 。 字 宙 に 浮か ぶ 
史 々 の よう で す 。 リ スト 2-2 は サイ ンカ ー デ を PSET で 描か せま し た 。 


(リス ト 2-1) 
1 の の FOR 1I= の TO 5 の gg 
1 1 の X ニ RND*64 の = Y=RND 2 : ビ =RND* フ 1 
129 PSET(X,Y。 ビ ) 
13 の NEXT 1 


(リス ト 2-2) 


1 の 9 CLS 
11 の FOR 1=1 TU 7 
12 の FOR J=g TO 639 
1 の X= ニ IN( (ゴー2g ウ * (エー1 ) ) / ら の ) *6 
14 の PSET (J 。 1 の gーX 。 1 ) 

| 15 の NEXT: NEXT 


(写真 2-1 リス ト 2-1PSET の 実行 画面 ) (写真 2-2 リス ト 2-2 の 実行 例 , サ イン カー ブ グ ) 


LINE (ine プ ライ ン ) 


キャ ラク タ ま た は ドッ ト を 用 いて 線 や 四角 形 を 描き ます 。 
LINE[@][(X1, Y1)]-(X2,Y2), 文字 列 [, カラ ー 番 号 ] [。 B ま た は BF] 
LINE[@][(X1, Y1 )]-(X2, Y2), 機能 [, カラ ー 番 号 ] [,。 B ま た は BF] 
形式 1 は , 文字 ど の キャ ラク タ を 使っ て 線 や 四角 形 を 表示 させ ます 。X1、 Y1 な どの 座標 は 


22 2 章 基礎 の グラ フィ ックス 


WIDTH 文 に よっ て 規制 され た 範囲 を と り ま す 。 
(リス ト 2-3) 


1gg MIDTH 49,25 
11 の LUCATE 9。16 
129 LINE(19。 の ) (25,15) 。"*" 。 


(写真 2-3 リス ト 2-3 の 実行 画面) 


ライ ン 文 最後 の オプ ショ ン を B と する と , 設定 し た 座標 の 対角線 を と る 四角 形 が 描画 され ま 


120 LINE(10,.0) (25,15)、“*".5,B 
120 LINE(10,0) (25,15),“*",5, BEF 


H H 
生 介 
ロ [ 
1 し 
人 還 
リ 1』 
し 
し L』 
L』  』 
す 生 
還 し 』 
ま し 
L」 
リ 還 
し 


(写真 2.5 BF を 設定 し た 例 ) 


形式 2 は 640 メ 200 ドッ ト の 画面 に 任意 の 位置 か ら ド ッ ト で 線 を 描か せま す 。 最も 多く 使わ 

れる 語 令 の ひと つ で ,。 グラ フィ ッ ク プ ログ ラム に は 欠か せな い 語 令 で す 。 形式 は 1 と 似 て いま 
す が , 文字 列 の か わり に PSET や PRESET な どの 機能 を 指定 し ます 。 機能 は 他 に OR, AND, 
XOR が 指定 で き , これ は 現在 その 場所 に 表示 され て いる 人 色 と 指 定 色 と の 論理 演算 の 結果 の 色 
を 表示 し ます (PSET の 項 参 照 )。PSET を 指定 する と , 指定 し た 色 が その まま 表示 され ます 。 
3 (BOX), BF (BOX FILL) の オプ ショ ン の 動作 は , 形式 1 と 同じ く , 指定 し た 座標 の 対 
角 線 を と る 四角 形 お よび , 四角 形 内 の 塗り つぶ し を 行ない ます 。 


(リス ト 2-4) 


FUR 『=1 TOU 1 の の 
X1= ニ RND*64 の = Y1= ニ RNDx2 の の 


X2=RND* ら 4 = Y フ = ニ RND* つ の の 
LINE(X1 。Y1) 一 (X2。Y2) 。PSET , 己 
NEXT 1 


に 


リス ト 2-4 は , 又 お よび Y の 座標 を 乱数 で 作り , ラン ダム 


UL 日 
Wii 本 ii 丁目 朋 
に に は 4 日 Il 


(写真 206 リス ト 2-4 の 実行 画面 ) (写真 2-7 B(BOX) を 指定 し た 場合 の 画面) 
(リス ト 2-5) 


FUR TI=1 TOU 1 の 
メ 1=RND# ら 649 ウ = Y1=RND テ 2 の 
2= ニ KND テ 64 の = Y ジ = ニ RND テ 2 つの 


C=RND* フ +1 
し INE (X1 。Y1 ) 一 (X2。Y2) 。PSET 。C 。BF 


NEXT I 


24 2 意 基礎 の グラ フィ ックス ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 


215 行 を 追加 し て , 指定 色 も 乱数 で 決め , BF (BOX FILL ) を 指定 し まし た 。 


(写真 228 リス ト 2-5 で て 
CONNECT (connect ノ コネ クト ) 
指定 する 座標 問 を 直線 で 結び ます 。 
[形式 | CONNECT (X1,Y1) --(X2,Y2) [--(X3,Y3)] … [, [カラ ー 番 号 ] [, 機能 ]] 
LINE 命令 た よく 似 て いま す が , この 命令 は いく つも の 座標 を 一 度 に 指定 する こと が 可能 で , 


如 


禁 問 を 次 々 と 直線 で 結ぶ こと が で きま す 。 カラ ー 番 号 と 機能 の 位置 は LINE 文 と 反対 
に な り ま す が , 動作 は 同じ で す 。 億 単 な 図表 を 描か せる 場合 な ど に 有効 な 命令 で す 。 


100 CONNECT(0,150) - (100,50) - (200,150) - (300.50) 一 (400,150) (500,50) 一 (600, 
150),5 


Ui1 
側 (9CCI(,.OD-( は 30)- 抽 139)-(200,8)-(409 13-3 凍 , 30)-(50/ 有 3 


怠 
記 


(写真 2-9 CONNECT の 実行 ) 


人 タ CIRCLE (circle プ サー クル ) 


任意 の 大 き さ の 円 や 円 弧 を 描き ます 。 
[形式 ] CIRCLE [@] (円 の 中 心 座標 X, Y), 半径 [, [カラ ー 番 号 ] [, [比率 ] [, [ 開 
始 位置 ] [, [終了 位置 ] [。[F ま た は N] [, 機能 ]]]]]] 
オプ ショ ン の パラ メー ク が と て も 多く て 混乱 し そう で す が , それ だ け に 細か い 円 の 指定 が 可能 
で す 。 普通 の 円 を 描く と き は , 比率 以降 を 省略 し て 構い ませ ん 。 
100 CIRCLE(320, 100), 150, 5 
これ で , 画面 の 中 央 に 半径 150 で 水色 の 円 が 描画 で きま す 。 


(写真 2-10) ( 図 2-2) 
比率 を 省略 し た 時 は 0.4495 の 値 が 自動 的 に と られ ます 。 こ れ は 640 メ 200 ドット 画 面 の 水平 , 
垂直 比率 が この 数 値 と な っ て いる た めで , 省略 し た 時 に は 真 円 が 描画 で きま す 。 比 率 は 0 一 1 
の 範囲 で 指定 で き , 本 円 の 描画 も 可能 で す 。 
風 始 位置 , 終了 位置 で は , 円 の 描き 始め と 終わ り の 位置 を 指定 で きま す 。 範囲 は 0 一 1 の 間 


開始 位置 。 終 了 位置 の 指定 を 行なう こと に より 円 弧 が 描画 で きま す 

次 の F ま た は N は , 円 あるいは 円 弧 内 を 塗り つぶ すか どう か の 指定 を 
りつ ぶし , N は 何 も ち し ませ ん 。 

最後 の 機能 は , PSET, PRESET,。 AND, OR が 選べ , 省略 し た と き は PSET と 見 な され 
ます 。 


1 


ー 
9t 
yt 
い 」 

2 
ft 
vt 
① 
(Y 
暗 


26 2 章 基礎 の グラ フィ ックス 


① 100、CIRCLE(320,100)。15055.9 比率 を 0.3 に 指定 

② 100 CIRCLE(320,100),150.5。。.1。.9。。  …… 開始 、 終 了 位 置 を 指定 
③ 100 CIRCLE(320,100),150,5, ,.1, .9,F …… 塗 りつ ぶし の ド を 指定 
③④ 100 CIRCLE(320,100),150,5,,.1,.9,F, XOR…… 機 能 の XOR を 指定 


UW1 
員 て OK(01 半 90.9i4.9 


記 
he 


wa 
員 


前 1/( 講 1「61JD) 征 
Ii) 


(写真 2 一 11 戸 行 画面 1) 


PAINT (paint プ ペイ ント ) 


囲ま れ た 領域 を , 指定 する 色 で 塗り つぶ し ます 。 
| 形式 | PAINT (塗り 始め の 座標 X。Y) [, [カラ ー 番 号 ] [, 境界 色 1 [, 境界 色 2 ]…]] 
(1) LINE や CONNECT, CIRCLE な ど に よっ て 描か れ た 図形 内 を 。 任意 の 色 で 塗り つぶ す 


ネ ラチ っ 


(2 境界 色 を 指定 する こと に より , 塗り つぶ し の 範囲 を 選択 する こと が 可能 で す 。 
(3) カ ラー 番号 を 省略 する と , 直前 の COLOR 文 で 指定 され た 色 で 塗ら れ ま す 。 
(4 境界 色 は 複数 個 の 指定 が で きま す 。 ま た 境界 色 の 指定 を 省略 する と, 指定 し た カラ ー 番 呈 
が 境界 色 と し て 見 な な れ ま す 。 
PAINT を 実行 する と き は , 図形 を 形 ど っ て いる 境界 線 が , 完全 に 閉じ られ て いる か どう か 
を 注意 し な けれ ば な り ま せん 。 少し で ち も 開 いて いる と , そこ か ら 色 が も れ だ し , みる みる うち 
に せっ か く の 図 形 が 塗り 消 る ぁ れ て し まう 場合 が あり ます 。 


(リス ト 2-6) 


1 の の CUNNECT ( 1 の , 1 の の ) 一 ( 呈 の の 5 の ) 一 (4 の の 。 1 の の ) (6 の 。 15) (2 の 。 1 の ) 一 
(1 の , 1 の ) 。7 


11 の PATNT (32 の 。 1 の の ) 。2。7 


リス ト 2-6 は CONNECT 命令 て , 白 の 書 界 委 で 描か れ た 図形 内 を , PAINT 命令 で 赤 に 
つぶ し て いま す 。 


LIN7 
指 AM 04 


(写真 2-15 PAINT の 実行) (写真 2-16 色 が られ た 時 の 画面 ) 
飼 _ COLOR (color プ カラ ー) 


画面 に 表示 きせ る 色 や 背景 色 を 指定 し ます 。 ま た , 表示 ほれ て いる 色 を 瞬時 に 変え て し まう 
パレ ッ ト 機 能 の 動作 を 行ない ま 

COLOR 語 全 2 [, 背景 色 の カラ ー 番 号 ] 

[形式 2 | COLOR=( パ レッ トコ ー ド , カラ ー コ ー ド ) 


28 2 意 。 基 葉 の ダラ フィ ックス 


形式 1 は 、 表 示 色 と 背景 色 の 設定 を 行ない ます 。 
形式 2 は 重 村 で , 表示 され て いる 色 を 瞬時 に 任意 の 色 に 変え 0 る こと が で きま す 。 い わ ゆ る パ 
レッ ト 機 能 と いう も の で , 動き を だ す ア ニメーション な ど は この 機能 の 応用 で 実行 で きま す 。 
(パレ ッ ト コ ー ド , カラ ー コ ー ド ) の 関係 は 
変更 させ る カラ ー 番 号 , 表示 さき せる カラ ー 番 号 ) 
が り ま の 5 だ と えば パレ ッ ト コ ー ド カ 沼 だ コ が 


COLOR=(2, 4) 


() 
( 青 ) 
( 赤 ) 
( 芝 ) 
( 緑 ) 
(水色 ) 
( 黄 ) 
( 白 ) 


0 
1 
2 
3 
4 
3 
6 
7 


と する と , 画面 に 表示 され て いる 赤色 (カラー 番号 2 ) が 緑色 (カラ ー 番 号 4 ) に 変化 し ます 。 
また , この 設定 以後 」 赤 を 表示 させ る 命令 を 実行 し て も , 緑 に 表示 きれ ます 。 

パレ ッ ト の 設定 は ( 〇 色 を , へ 色 に ) と 考え れ ば わか りや すく な り ま す 
電源 投入 直後 の パレ ッ ト コ ー ド , カラ ー コ ー ド の 初期 設定 は 次 の よう に 


ご 


こ 。 1 対 1 に 対応 し て 


いま す 。 
この 組み 合わ せ を どの よう に 変え て も 構い ませ ん が ,。 プロ グラ ム 時 に は 初期 値 に 戻す こと 
を 忘れ な いよ うに し て くだ さい 。 そ うし な いと 。 次 に 実行 する プロ グラ ム や リス ト 表 示 が 思わ 


ぬ 色 に な っ て し まい ,。 ま ご つい て し まい ます 。 
FOR P=0 TO 7 : COLOR = 〔P,P] : NEXT P ー( バ パレット を 初期 化 
の の メア ロメ グラム) 
パレ ッ ト 機 能 の 応用 例 と し て , PSET の 項 で 示し た サイ ンカ ー ブ を 動か す プ ログ ラム を 作っ 
て み ま し た (リスト 2-?7)。 各色 で 描か せ た サ イン カー プ ブ を, 一目 パレ ッ ト て 全 色 を 黒 に 変え た 
後 , ひと つ ず つ 緑 色 で 表示 させ まし た 。 サ イン カー プ が 波打つ 様子 が わか る と 思い ます 。 プロ 
グラ ム を 止め る 時 は , どれ か キー を 押し て くだ さい 。 340 行 の INKEYS の 判断 で , 押さ れ た 場 
合 に は 350 行 に 実行 を 移動 し , パレ ッ ト の 初期 化 を 行なっ て 終了 し ます 。 


に に 3 


29 


(リス ト 2-7) 


CLS 
FUR 1=1 TO 7 

FUR J= の TU 639 STEP 2 

X= ニ SIN( (ゴー26* (エー1 ) ) / さ の ) * さ の 
PSET (J 。 1 9 ウーX , 1 ) 

NEXTJ ,。 1 


FURK P=1 TO 7:CULOUR= (P 。 の ) : NEXT 
FUR P=1 TO 7:CULURK ニ =(P 。4) 

FOUR T「= の の TO 2 の : NEXT 
COLOUR=(P の) : NEXT 

IF INEEY も =" リ THEN う 1 の 

FURK P=1 TO 7:CULOUR=(P 。P) s NEXT 


SCREEN (screen プ スク リー ン ) 


R,。G, B の 各 VRAM の 書き 込み と 表示 を コン トロ ー ル し レ ま す 。 
[形式 |] SCREEN [アク ティ ブ VRAM コー ド ] [, ディ スプ レイ VRAM コー ド ] 
アク ティ ブ VRAM コー ド は 書き 込め る VRAM を 示し , ディ スプ レイ VRAM コー ド は , 表 
示さ せる VRAM を さ し ま す 。 
VRAM と は VIDEO RAM の 略 で , FM-7 は R (レッ ド ), G (グリ ー ン ), B (ブル ー) 
画面 分 。 つ まり 640X200 ドッ トメ 3 画面 。 計 48 K バ イト の VRAM を 持っ て いま す 。 
SCREEN 命令 は , 特定 の VRAM を 指定 し て 絵 を 描か せる な どの 書き 込み を し た り , 任意 の 
VRAM だ け を 表示 させ る こと が で きま す 。 
アク ティ ブ に ディ スプ レイ 
VRAM コー ド が 1 VRAM コー ド 
どの VRAM も 表示 し な 
B の み 表 示 
R の み 表 示 
B と R を 合成 し て 表示 
G の み 表 示 
B と G を 合成 し て 表 
R と G を 合成 し て 表 
全 VRAM を 表示 


全 VRAM が 書き 込み 不可 
B の み 書 き 込み 可 
R の み 書 き 込 み 可 


B と G が 3 
R と G が 書き 込み 可 
全 VRAM が 書き 込み 可 


0 
1 
2 
3 
+ 
5 
6 
7 


^=J の の 上 (OO トビ どら 


30 2 章 基礎 の グラ フィ ックス 


アク ティ ブ お よび ディ スプ レイ VRAM コー ド は ,。 0 から 7 の 範囲 を と り , 内 容 は 以下 の 通 
り で す 。 
( 例 ) ① SCREEN 1,2 て ( 青 の VRAM が 書き 込み 可能 で , 赤 の VRAM だ け を 表示 ) 
②③ SCREEN 4:CLS ( 縁 の VRAM の 内 容 が 消去 され る ) 
パレ ッ ト と 似 て いる 感じ で 混同 し そう で す が , 動作 は 違い ます の で 注意 が 必要 で す 。 
SCREEN 文 を 操作 し て いる と き , カ ー ソ ル も 含め て 何 も 表 示さ れ な く な っ た 場合 は [ PF9 | ある 
い は 「SCREEN 7., 7」 を 打ち 込み 初期 化し て くだ さい 。 


I 回 
199 FDR C=7 TO 1 STEP-1 (リス ト 2-8) 
11 X=:2+Cx5: Y=Bg+C*15 
| 
| 


129 LINE(2 ロ 9 ,B9) -(X 。Y) 。PSET 。C 。BF 
13@ NEXT ヒ 

149 FDR SCR=1 TO 7 

15g SCREEN 7,SCR 

169 FUR T=g TU 1ggg:NEXT T 

17g NEXT SCR 


150 行 で ディ スプ レイ VRAM コー ド の 
値 を 変え て ,。 各 色 の 表示 の 様子 を 示し まし た 。 


160 行 は , 表示 時 間 の タイ ミ 


ララ < 
いる だ 


7/ 
N 
NG 
ヽ 
さ 
(て 
| 


リエ ーー 
やす 


に 


を 切り 替え る 芸当 が で きま す 。 こ の 動作 を 連 (写真 2-17 SCREEN の 実 叶 ) 
続 し て 繰り 返 え す と アニ メー ショ ン が 可能 で す 。 し か し , 本物 の アニ メー ショ ン の よう な , 滑 
ら か な 動き を 出す こと は 作画 スピ ー ド の 点 で 難し く , コマ 送り 風 の 動画 に な っ て し まい ます 。 


SYMIBOL (symbol ノ シン ボル ) 


アン 密 「 と 人 和志 の ンー ン て テ と ーー ら の に ーー ジン: > ヨー ーー に 
文子 列 を 任 褒 の 大 き さ , 任意 の 位置 。 任意 の 方 向 で 表示 し ます 。 


[形式 | SYMBOL (X,Y), 文字 列 , 横 倍率 , 縦 倍率 [,[ カ ラー 番号 ] [, [角度 コー ド ] 


[, 機能 ]]] 


37 


の 病 令 は F-BASIC 独特 の も の で , 文字 列 

を 好み の 大 き さ に 拡大 で き , 画面 の タイ トル 

表示 に よく 使わ れ ま す 。 ま た 文字 列 は 90' 単 
位 で 回 転 き せる こと も で きま す 。 

(X。 Y) は 表示 位置 を 示し , 文字 列 の 枠 内 
の 左上 の ドッ ト 座 標 を 指し ます 。 

倍率 は , 拡大 の 倍数 を 表し , 横 方 向 , 縦 方 

向 別 々 に 指定 する こと が 可能 で す 。 ( 図 2-3) 


角度 コー ド は 文字 列 の 回 転 方 向 を 示し , 90' ず フ 左 回 転 き させ て 表示 で きま す 。 
機能 は 。 PSET。PRESET。 AND, OR, XOR, NOT の 指定 が で きま す 。 
(リス ト 2-9) 


1 の の SYMBOL (32 。 1 99) 。 
11 の SYMBOL (32g 。 1 の) 。 "FBASTC" 2。 
12g SYMBOUL (329 。 199) 。 "FBASTC" 。4。2 
1 さ 3 SYMBDL (32 。 1 の ) 。 "FBASTC" 。2。4 


功 
和 


TV8 圭 pasrc 


(写真 2-18 リス ト 2-9 の 実行 画面 (文字 列 の 回 転 ) ) 
SYMBOL 命令 を 使っ て , 影 付 き 文字 を 表現 し て み ま し た 。 表 示 位置 を わずか に ずら せ て 。, 
文字 列 の 二 重 描 き を させ て いま す 。 小 イキ な タイ トル 表示 と し て 使え ます 。 
(リス ト 2-10) 


19 の 9 SYHBUL (79。79) 。"FM-BRAPHTC" 。6。 さ 。2 
11 の SYMB ロ L (66。 6 日) 。 "FM-BRAPHTC" 。6。 さ 。5 


Co 
ト ho 
ト つ っ 
理 


意 基礎 の グラ フィ ックス 


記 


FN-GRRPH 1 で 


(写真 2-19 リス ト 2-10 の 実行 画面 ( 影 付き 文字 )) 


GET@ (get@ プ ゲッ ト ア ッ ト ) 


指定 し た 範囲 の 画面 情報 を 配列 に 取り 込み ます 。 

GET@(X1,Y1) -(X2, Y2), 配列 名 

GET@A(X1, Y1) 一 (X2, Y2), 配列 名 

GETe(X1,Y1) -(X2, Y2), 配列 名 。G[, カラ ー 番 号 [, カラ ー 番 号 ] …] 

形式 』 | GET@A(X1, Y1) 一 (X2, Y2), 配列 名 , G 

ひと つの キー ワー ドド 形式 が 4 つも ある と うん ざり し て きま す 。 し か し , それ だ け に , きめ 細 
か い コ ント ロー ル が で きる と 思っ て し っ か り 理 解 し て く ヵ 

GET@ は, 後述 の PUT@ と 対 で 使わ れる も の で , 指定 す 還 の 人 W 報 っ くり 配列 
の 中 に 取り 込ん で し まう 機能 を 持ち ます 。 一 度 配列 に 入れ て し まう と , PUT@ で 呼び だ せ は ば 即 
座 に その 情報 を 画面 の 任意 の 場所 に 表示 する こと が で きま す 。 

形式 1 お よび 2 は 画面 情報 と し て キャ ラク タ を , 形式 3 お よび 4 は ドッ ト を 取り 込み ます 。 
また 形式 2 お よび 4 は , カラ ー 情 報 も 含め て 配列 に 格納 し ます 。 


GET@ て 配列 に 取り 込む 要 案 


グラ フィ ックス を 行なう うえ で , 重要 な 
形式 は 3 お よび 4 に 絞ら れ ま す の で , 本 書 
で は , これ ら を 中 心 に 述べ て いき ます 。 

(X1, Y1) 一 (X2, Y2) は , 配列 に 入れ る 
画面 範 因 を し ます 。 た と えば, 

(100, 100) 一 (150, 120) は 図 2-4 の 範 
囲 を と り ま す 。 

説明 が 前 後 し ます が , GET@ 文 を 実行 す 
る と き は , あら か じみ め 取り 込む べき 画面 徹 
囲 に 従っ た 大 き さ る の 配列 を 宣言 し て ち お みわ ね ば な り ま せん 。 

1 ドッ ト が 1 ピット に 対応 し て いま す の で , 1 バイト の メモ リー で 8 ドッ ト 分 が 格納 で きま 


( 図 2-4 (100,100) 一 (150, 120) の 箇 囲 ) 


す 。 画面 範 囲 が 1000 ドッ ト あ る 場合 は , 
1000 ド ッ ト エ 8 ピッ ト =125 バイ ト 
と な り , 125 バイ ト 分 の メモ リー が 必要 で す 。 これ を 配列 変数 に 岬 き 換え る と , 整数 型 は 1 つの 
変数 に 2 バイ ト 分 使う の で 
125 バイ ト =2=62.5 
と な り , 63 個 の 配列 を 宣言 し て お け ば 良い わけ で す 。 


単 精度 型 で は 125 バイ ト エ 4=31.25 
倍 精 度 型 で は 125 バイ ト =8=15.625 


と な り , それ ぞ れ 32 個 , 16 個 の 配列 を 用 意 し ます 。 

富士通 の マニ ュ ア ル で は 整数 型 の 配列 に 格納 する 例 を 挙げ て いま す が 。 要 は 必要 な メモ リー 
の 数 が 確保 で きれ ば 良い わけ で , どの 型 の 配列 変数 を 使っ て も 構い ませ ん 。 

形式 3 に 必要 な 配列 の 個数 =INT((INT(( 総 ドッ ト 数 +7) プ 8) エ aー1) グ a) 

a の 値 は 整数 型 … a=2, 単 精 度 型 …a=4, 倍 精 度 型 …a= 

形式 4 に 必要 な 配列 の 個数 =INT((INT(( 総 ドッ ト 数 7) プ 8) * 3 二 aー1) 3a) 

形式 4 の カラ ー 情 報 $ ゎ 含め た と き の 配 列 の 大 きる は 形式 3 の 場合 の 約 3 倍 に な り ま す 。 
形式 3 の カラ ー 番 号 は , 取り 込む べき ドッ ト の 色 を 指定 し ます 。 指定 され た 色 で 表示 され て 
いる ドッ ト だ け を 読み 取り , 配列 に 格納 され ます 。 各 形式 に お ける 画面 情報 の 取り 込み 方 の 違 


42NEST 拉 の グラ シ ガ サダ ツク ブフ ーーーーー 連 バーーー ーーーー ニ ーーー ーー デビ ト am 


い を 見 て み ま し ょ う ,。 
(リス ト 2-11) 


DIM BZ(Bgg) : FDR 1=7 TO 1 STEP-1 

11g CIRCLE(19g。15 の ) , 1*9』1。。。 FsNEXT 

12g BET@(1g,121) (164 。179) 。BZ 5 

149 PUT@(25g』121) 一 (14。179) 。GZ PSET 

15g BETe(19g。121) 一 (164,179) 。B ん 。G。1 。 さ 。5。7 
160 PUTe (35 の 。 121) 一 (414。179) BZ。PSET 

17g GETGA(199。121)-(164。179) 。BZ。G 
PUTeQ(45g』121 ) -(514。179) 。GZ。PSET 


写真 左端 の 同心 円 状 の 図 が , 110 行 で 捕 
か れ た 原図 で す 。 そ の 隣り の 半 円 状 の も の 
は , GET @ の 書式 の 違い で , 配列 に 取り 込 
まれ た 画面 情報 が どの よう に な っ て いる の 
か を PUT@ 命 令 を 使っ て 表わし て いま す 。 

左 か ら , 形式 3 で カラ ー 番 号 を 省略 し た 
場合 (120 行 )、 カラ ー 番 号 を 指定 し た 場合 
(150 行 )、 形式 4 の 場合 (170 行 ) の 順 で 


並ん で いま す 。 (写真 2-20 リス ト 2-11 の 実行 画面 (画面 情報 の 取り 込み 方 )) 


お ,GET@ で 取り 込む 画面 の 範囲 は , 原図 の 右 半 分 だ け を 指定 し まし た 。 
PUT@ (put@ ノ プッ ト ア ッ ト ) 


GET@ で 配列 に 格納 し た 画面 情報 を 任意 の 位置 に 表示 し ます 。 

[形式 1』| PUT@(X1,Y1) 一 (X2,Y2), 配列 名 [, カラ ー 番 号 ] 

[形式 3 | PUT@A(X1,Y1) 一 (X2, Y2), 配列 名 

「 形 素 3」 PUT@(X1, Y1) 一 (X2, Y2), 配列 名 , 機能 [, カラ ー 番 号 ] 

| 形式 | PUT@A(X1,Y1) 一 (X2, Y2), 配列 名 , 機能 

各 形式 は , GET@ の 形式 と 対応 し て いま す 。 形式 1、 2 は キャ ラク クタ 単位 、 3。 4 は ドッ ト 
単位 で (X1, Y1) 一 (X2, Y2) の 画面 範囲 に 表示 し ます 。GET@ で 宮 言 し た 配列 の 大 きる を 超え 


35 


移 CCURSOR (gcursor プ グラ フィ ッ ク カ ー ソ ル ) 


画面 に 表示 し た グラ フィ ッ ク ・ カ ー ソ ル 位 置 の ドッ ト 座 標 を 読み 取り ます 。 
[形式 | GCURSOR (X,Y), (変数 名 1 , 変数 名 2 ) [, (変数 名 3, 変数 名 4 ) …] [。 カラ 
ー 番 号 
GCURSOR は ,+ の 形 を し た カー ソル で , 画面 の 任意 の 位置 に ドッ ト 単 位 で 表示 する こと が 
で きま す 。 表 示 後 カー ソル キー を 押す と GCURSOR は 移動 し , リタ ー ン キー を た た く と その 
位置 の ドッ ト 座 標 を 変数 に 代入 し ます 。 
GCURSOR (320, 100), (A, B) 

これ を 打ち 込む と , 画面 中 央 に CCURSOR が 表示 され ます 。 次 に , カー ソル キー を 使っ て 
GCURSOR を 任意 の 位置 へ 移動 る きせ , リ クー ン キ ー を 押す と , その 位置 の 水平 座標 が 変数 A に , 
垂直 座標 が B に 代入 され ます 。 念 の た め , グイ レク トモ ー ド で PRINT A, B と 打ち 込ん で く 
だ きい 。 読み 込ま れ た 座標 値 が 確認 で きま す 。 

変数 名 は 複数 個 の 指定 が 可能 で , カー ソル キー, リク ー ン キー の 操作 の 順 で 次 々 と 座標 を 読 
み 取 ろ こ と が で きま す 。GCURSOR は シフ トキ ー を 併用 する と 移動 速度 が 速く な り ま す 。 
カラ ー 番 号 は , GCURSOR の 表示 色 を 指定 し ます 
GCURSOR は 他 の 機種 に は み ら れ な い F 一 BASIC 独特 の も の で ,。 ライ トペ ン が わり と し て 
使え る 便利 な 命令 で す 。 ラ イト ペン は 精度 に 問題 が 色 0 り ます が , 操作 性 に すぐ れ て いま す 。 
GCURSOR は 反対 に , 精度 は ドッ ト 単 位 で 正確 な の で す が , キー 操作 が わずらわし いと いえ ま 
す 。 一枝 に どちら が 良い か と は いえ ませ ん が , 初期 投資 を し な く て 済む 分 だ け GCURSOR に 
軍配 が 上 が り ま す 。 マ ウス は , この 両方 の 特長 を 兼ね 備え を た も の と いえ ます 。 富 士 通 か ら FM 用 
の マウ ス も 発売 され て いま す 。 


oO 


乏 CONSOLE (console プ コン ソー ル ) 省略 形 CONS. 


スク ロー ル 範 囲 や 。 ファ ンク ショ ン キ ー の 表示 スイ ッ チ の 設定 を 行ない ます 。 
CONSOLE [スク ロー ル 開 始 行 ] [, [スク ロー ル 行 数 ] [, [ファ ンク ショ ン 表 示 ス 
イッ チ ] [。 コン ソー ルカ ラー スイ ッ チ ]]] 


36 2 章 基礎 の グラ フィ ックス 


スク ロー ル 開 始 行 は 0 て 24, 行 数 は 0 て 25 の 
範囲 で 指定 し ます 。 こ の 指定 は WIDTH で 
CN CR 

開始 行 お よび 行 数 の 指定 に より , 画面 を 分 
EE 
の と き , 「CONSOLE 10.5 」 は , スク ロー ル 
範囲 が 10 行 目 か ら 15 行 目 ま で と な り , 9 行 
目 ま で が ペー ジ モ ー ド 1, 16 行 ~ て 25 行 目 が 
ペー ジ モ ー ド 2 に 設定 され ます 。 

市 販 の アド ペン チャ ー ゲ ー ム な ど で は ,。 
CONSOLE 22,3 と 初期 設定 され て いて , ペ 
ー ジ モー ド 1 に 絵 を , 下 3 行 の スク ロー ル 範 


囲 に 状況 説明 を 表示 させ て いる 例 が 多い よう 


76。 
ファ ンク ショ ン キ ー 表 示 ス イッ チ を 1 


に す 


る と, 画面 の 下 2 行 に ファ ンク ショ 
ン キ ー の 内 容 が 0 れ ル ま 33 当 の 場合 3 
ロー ル 開 始 行 お よび 行 数 の 範囲 は 2 


行 分 少な く な り ま す 


コン ソー ルカ ラー スイ ッ チ を 1 に する 
と , 画面 は 緑色 だ け の 単色 表示 に な り , 
文字 の 出力 動作 が 速く な り ま す 


く な り ま す 。 
電源 投入 時 は ,「CONSOLE 0, 20,0,0」 


に 初期 設定 きれ て いま す 


に 


スク ロー ル 範 団 


( 図 2-5) 


( 図 2-6) 


LT 
8 OSAE52.4.8 


1 


REX1 


( 図 227 ファ ンク ショ ン 表 示 ス イッ チオ 


3/ 


人 9 CLS (clear screenm プ クリ アス クリ ー ン ) 
画面 を 消去 し 。 カーソル を ホー ム ポ ジ シ ョ ン に 戻し ます 。 
[形式 ] CLS (消去 爺 胃 フード) 


な に を いま さら と 思わ れる か ち も 知れ ま せ ん が , CLS の 消去 節 囲 ゴウ ラメ 克 > も 提 
付く 人 は , 以外 と 少な いも の で す 。 


消 夫 分 囲 は ,。 CONSOLE 命令 の 設定 と 密接 な 関係 を 持っ て いま す 。 


消去 範囲 コー ド 意 味 
生 画 面 を クリ ア 


スク ロー ル 画 面 を クリ ア 


ペー ジン ェ ニ ーー 1 ンタ ジン) ラン 


ペー ジ モ ー ド 2 を クリ ア 


金 F-BASIC 活用 ソフ ト (山海 堂 発行 ) 


7 一 アム 品 と グ = プ プ (fw-7NEw7.77 


潮 守 著 /B5 判 /2,100 円 
FM-7・NEW7・77 で 使え る プロ グラ ム の リス ト と その 使い 方 ・ 操 作法 を 収載 . 
@ 辞 革 付 簡易 日 本 語 ワ ー プ ブロ . 縦 印刷 も で きま す 。 
@ ビジ ネス グラ フ と 統計 表 ・ 統 計 グ ラフ . 複合 クラ フ も 表示 で きま す . 
@ ディスク ユー ティ リティ . アク セ モス の スピ ー ド を アッ プ す る フォ ー マ ッ ト な ど 8 種 . 
@e FM 一 PC ファ イル 変換 FM と PC 間 で 相互 に プロ グラ ム を 読み 込め ます . 
@ その ほか ,、 グラ フィ ッ ク バ パネ ル ・ 金 利 計算 ・ オ ル が ガン な ど 計 11 本 収載 . 
宅 フロ ッ ピ ー デ ィ ス ク 頒 布 サ ービス 
全 プ ログ ラム 17 本 を ディ スク で 頒布 し て お り ま す . 5 イン チ , 3.5 イ ンチ と も 7000 円 で す 
(送料 当社 負担 )、 サイ ズ を 明記 の うえ 現金 書留 に て お 申し 込み 下さ い . 


申し 込み 先 東京 都 文 京 区 本 郷 5-5-18 山海 堂 営業 部 MS 係 


グラ フィ ッ ク の 命令 に つい て , その 機能 や 動作 な ど 一 通り 述べ て きま し た が , ある 目的 を 送 
成す る た め の ま と まっ た プロ グラ ム を 組 も うと する と 。 あ る 程度 の 慣れ や カン が 必要 と な っ て 
きま す 。 

また , マイ コン 教室 に 通っ て ペー シッ ク を 習っ た けれ ど , いざ 自分 で 具体 的 な プロ グラ ム を 
作ろ うと し て も , どう し て よい や ら 困 っ て し まう と いう 話 も よく 耳 に し ます 。 

プロ グラ ミン グ は 、 キー ワー ド を いく ら 正 確 に 覚え よう と も 。 英 単語 だ け を 覚え て 英会話 を 
し よう と する の と 同様 。 き ぎこちない も の と な る ば か り で な く , まっ た く 意 味 の 通ら な いり 場合 さ 


え 起 こり ます 。 プ ログ ラム は “流れ ” で すか ら , 目的 を 達し つつ 流れ が 止ま ほら な いよ うに 道 を 
作っ て いか ね ば な り ま せん 。 キーワー ド の 機能 や 動作 を 理解 すみ こと は も ちろ ん 重要 な こと で 
す が , も っ と 大 切な こと は 。 各 キー ワー ド を どの よう に 組み 合わ せ 。 い か に し て プロ グラ ム と 


し て まとめ る か と いう 点 で す 。 そ の た め に は 。 自分 の させ た い 仕事 を な る べく 小さ な 単位 に 分 


け ,。 単位 ご ど と の プロ グラ ム を 作っ て 。 最 終 的 に それ ら を つなぎ 合わ せ て 一 本 の プロ グラ ム と し 
て 仕上 げ る 方 法 を と る こと が 最良 で は な いか と 思い ます 。 

フロ ー チ ャ ー ト を 書い て みる こと も 一 手段 で それ な り の 効果 は 絶大 で て す が , これ は 以外 と 大 
変 な こと で ,。 ペー シッ ク を 覚え た て の 時 に は と か り て で 終わ っ て し まい が ち で す 。 


ま ど う ば 
ベー シッ ク は 。 制約 の 少な い 気 軽 に 書き 下 せる 言語 で す 。 さ せ た い 仕事 を 細か く 分 け て プロ 
ン ン 


ゲ 7 ルー チン と し て 。 メ イン プロ グラ ム か ら 呼 び だ す 


39 


よう に すれ ば , 自然 と 大 き な プ ログ ラム に 育っ て いき ます 。 まずは, 単 一 機能 の 小さ な プログ 
ラム を 気軽 に 書き 下す こと か ら 始 め て くだ さい 。 

よく IF 文 を 使い 過ぎ る な と か , GOTO 文 を と ころ 構わ ず 使用 する こと は 良く な いと か いろ 
ゅ ろ い われ て いま す が , 最初 の うち は そん な こと に と ら わ れる 必要 は あり ませ ん 。 どん な 命令 
の 使い 方 を し よう と , エラ ー を 起こ さ ず に 目的 を 達する こと が で きれ ば , それ て 立派 な プロ グ 
ラム と いえ ます 。 プ ロ に な る の で ある な ら げ ば 話 は 別 で す が , 最初 か ら , プロ グラ ミン グ は , あ 
る べき だ と 多 屈 に 考え 過ぎ て し まっ て は , 自由 な 発想 は 生ま れ ま せん 。 
この 命 chibi ) 2 BA 
どの 命令 を 使え ば 良 ら の か な ど と 。 ら ろ い らい ろ 考え , あれ これ 試し て みる こと が 上 達 へ の 第 一 
で の 電 

この 章 で は , 具体 的 な プロ グラ ミン グ 例 と し て , グラ フィ ッ ク を 中 心 に いく つか の サン プル 
プロ グラ ム を 掲載 し まし た 。 各 命令 の 使い 方 や テク ニック な ど を 自分 な り に くみ 取り プロ グラ 
ム 作り に 役立て て くだ さい 。 


グラ フィ ッ ク ・ デ モン スト レー ショ ン | 


手始め に , グラ フィ ッ ク 命 令 を 使っ た 簡単 な デモ プロ グラ ム を 作っ て み ま し ょ う 。 デ モ は パ 
ソコ ン を 手 に する と, 誰 も が 一 度 は 作る プロ グラ ム の よう で す が , 各 命令 の 機能 や 動作 を 理解 
し , 確か め る うえ で は うっ て つけ と いえ ます 。 

リス ト 3-1 は , PSET, LINE, CIRCLE, PAINT の 命令 を 使用 し た プロ グラ ム で す 。 座標 
の 値 は 乱数 で 決め て お り , また PAINT の ルー チン は サブ に し て いま す 。 

リス ト 3-2 も 同様 の デモ プロ グラ ム で す が , 座標 の 値 は FOR 文 に よっ て 決め て いま す 。 乱 
数 と 異な り , 規則 性 を も た せ た 図 が 描画 で きま 

ao ンコ er の 本 の ーッ まこ 生ま 
分 独自 の デモ プロ グラ ム 作 り に 挑戦 し て くだ さい 。 

リス ト 3-3 は , 表示 色 を 瞬時 に 別 の 色 に 変え て し まう パレ ッ ト の サブ プ ル ー チ ン で す 。 デモ プ 
ログ ラム の 中 で 「GOSUB 300」 と し て 呼び だ す な ど , いろ いろ 活用 し て くだ さい 。 330 行 は 。 
パレ ッ ト コ ー ド を 初期 化す る た め の ル ー チ ン で す 。 


あす べき が , 


き 


40 3 章 実践 プロ ダグ ラミ ング 


本: エエ テ ズ エエ テ エ テテ エ エエ: 還っ 2 こ 1 に = 拉 軒 放 エエ テテ マエ そそ そそ そそ 3 
RANDUMIZE TIME/ さ : CLS 

FUR 1=g TO 1 の 

X=RND*64: Y=RND 199 
PSET(X ,Y 。RND*7) : NEXT 

本 エエ エエ エエ エエ エエ エエ 生還 8 いこ 紅 さそ さそ そそ そそ そそ そそ そそ コ 
FUR 1=g TO 15 

X1=RND*64g: X2=RND*64g 
Y1=RND*2 の : Y2=RNDk2g 

LINE (X1 ,) -(X2。199) 。PSET 。RND*6+1 
LINE (の 。Y1 ) -(639 。Y2) 。PSET 。RND*6+1 
NEXT: BHSUB 27g 

" 共 間 天天 基 天 天天 天天 じじ ITRCLE 天天 共 共 共 基 天天 天天 共 其 
CLS:FUR 1=g TO 5g 
X=RND*649: Y=RND 199 
CIRCLE(X ,Y) 。RND* 1 。RND*6+1 

NEXT: GDSUB 27g: BUTU 1gg 

* 基 基 基 天天 天天 天天 た PTNT/GUHB 区 天天 基 共 天天 共 基 基 基 
FUR 1=g TO 1gg 

X=RND*64: Y=RND*199 

PAINT(X 。Y) 。RND*6+1 。1 。2。 さ 。4。 呈 。 ら 。7 
NEXT: RETURN 


(写真 3-2 乱数 を 使用 し た デモ 画面 ②) 


47 


(リス ト 3-2) 


1 の の “区区 北 区 大 天天 天天 基 牙 牙 天 天 PO ロ ET 若 基 区 天正 天正 若 基 正基 基 基 基 
11 の CLSsFUR X=g TU 64g STEP 1g 
12g FOUR Y= ウ TO 199 STEP 19 
13 の PSET(X。Y。X MOD フ ) :NEXT Y,X 
14 人 の 区 区 贅 区 大 区 区 小区 区 区 乾 し LTNE 共 基 基 共 基 基 若 基 区 基 基 韻 若 共 
15g の FUR 1I=64 の TU の STEP-4 
16 の し LINE( の , の ) 一 (1 。1/ う ) 。PSET 。 1 MUD 7,BF 
17 の NEXT 
1 日 切 “区 交 区 区 北 牙 下 基 基 基 基 基 基 CIRCLE 区 大 天天 基 基 基 基 基 基 共 
19 の CLS:FUR 1=15 の TU 494 STEP 4 
2 の CIRCLE(T 。1 の の ) ,15 の 9。T MOD 7 
21 の NEXT 
EE エ テス テテ エエ テテ テテ テテ エゴ コーブ ^98H. 支 文 誤 区 二 元 区 元 到 丈 : 丈 コ 
PATNT (1g。 1 の) 。 ら 。1 。2。 う 。4。 避 。 ら 。7 
PAINT (1 の 。19 の ) 。2。1 2。 さ 。4。 避 。6。7 


人 T W 
NT ET 


人 W 0 NN 
NN の / が 


(写真 3-3 規則 性 を 持た せ た デ モ 画 面 ①) (写真 3-4 規則 性 を 持た せ た デ モ 画 面 ②) 


(リス ト 3-3) 


る の "エエ キ エ キキ キキ キキ キキ エキ エ 二 PALET キキ キキ キキ エキ イキ ナオ 
ミ さ 1 の FOUR =1 TO 7:CULUR=【( エ 。 ヨ ー1 ) 

ミュ 2 の FOUR T= の TH 5gg:NEXT T。 エ 

ささ の FUR P=g@ TO 7:CULUR=(P 。P) :NEXT 


パソ コン に 絵 を 描か せる 方 法 に は , 大 きく 分 け て 二 通り の 手段 が あり ます 。 


42 3 章 実践 プリ ログ ラミ ング 


ひと つ は , 決め られ た 手順 に 従っ て 座標 の デー タ を 読み 取り , LINE 文 な ど で 線 を つなぎ , 
絵 を 一 気 に 描き 上 げ て し まう 方 法 で す 。 パ ソコ ン ・ シ ョ ッ プ で アニ メキ ャ ラク タ を 描か せ て い 
る デモ ンス トレ ーション は , この 方 法 が 多い よう で す 。 

ち も う ひと つの 手段 は , 画面 を 見 な が な ら キ ー ボ ー ド を 絵筆 が わり に , 直接 ディ スプ レイ に 描い 
て いく 方 法 で す 。 


國 絵 を 描く プログ ラム 


最初 に 前 者 の 方 法 に つい て 述べ て み ま し ょ う 。 ま ず , 下絵 を 準備 し , 座標 を 拾い ます 。 座標 


ま 絵 を 形 どる 要 所 要 所 の 点 を 順 々 に プロ ッ ト し ま 点 は 640X200 ドット の 範囲 で な けれ ば 
な り ま せん 。 座標 を 拾い 終わ れ ば 作業 は お し まい で , あと は この デー タ に 従っ て 座標 を 打ち 込 


線 を 結ば せれ ば 絵 は 完成 し ます 。 
拉 和 oo 
りす る 作業 が 最も 大 変 な た こと な の で す 。 ま た 下絵 の 出来 不 出来 が その まま 表現 きれ て し まい ま 
す の で , 下絵 に は 充分 な 注意 を 払わ な けれ ば な り ま せん 。 下絵 を 修正 し な が ら 座 標 の 入力 を し 
よう な ど と いう 考え は 禁物 で す 。 

絵 の 座標 デ ー タ を 格納 する 方 法 は いく つか あり ます の で , 次 に 実例 を まじ 


方 法 に つい て 述べ て み ま す 。 プ ログ ラム 例 は , FM と いう 形 を 描 あ せ て いま す 
⑯ CONNECT 文 内 に 直接 格納 


スピ ー ド も 速い の で す が , 複 術 で 混み 入っ た 図柄 の 座標 値 を ズラ ズラ 入れ て 
し まう と , プロ グラ ム が 見 づら く な る と と も に , 修正 が や り に くく な り ま す 。 比較 的 単純 な 図 


の 
効 な 手段 で す 。 


19 の 9 CHNNECT (139 。5g) (27 の 。5g) 一 (27 。7g) 一 ( 17 の 。7) 一 (17 の 。 ヨ の ) 一 (25g 


| ぅ B9) 一 (259 。 199) 一 (179 。199) 一 (179。13 の 9) 一 (13 の 。 13 の 9) 一 (13 の ウ 。5 ら の) 。 フ 
11 の CUNNECT (329 ,5g) (369 。 5 の) (41 の,95) 一 (46 。5 ) 一 (5 の の 5 の ) 一 (5 の の 
| ぅ 13 う 9) 一 (469 。 139) 一 (469 ,B5) 一 (419。13 の ) 一 (36 。 日 ら ) 一 〈 さ 6 の 。 1 さ ) 一 (32 
| 


一 番 簡単 で 描画 
ク 


を 
づ 

ーー ムル エキ テス 、 ュ レフ シリ ンー) シテ っ 

表 や 絵 を 描か せる と き に は 有 


9, 139) 一 (3 2 , 5 の ) 7 
129 PAINT(159,69) ,2。7: PINT ( さ 49 。69) 。1 。7 
ーー 


C ふ 


@。 DATA 文 に 格納 し , READ 命令 で 読み 出す 
絵 を 描か せる プロ グラ ム と し て 代表 的 な 方 法 で す 。 DATA 文 を 増やす こと に より , どん な 複 


槍 な 図 肛 で も 表現 可能 で す 。 
200 行 以降 の デー ク を 100 行 と 110 行 の READ X, READ Y て 読み 取り , LINE 文 で 線 


を つなげ て 絵 を 描か せ て いま す 。 

首 き 始め を 区 別 す る た め に , デー ク に は 少し 細工 を 加え て いま す 。 通常 LINE 文 は , 線 を 結 

ば せる ろ る 2 点 の XY 席 棲 を セッ トレ ます が , 次 々 と 線 を つなげ る と き に は デー クタ の 重 復 が 問題 
導き の 要領 で 描画 が で きる LINE- (X, Y), PSET と し て , 出発 


に な り ま す 。 そこで,。 一 筆 描 き の 要 分 
まま で す と , いっ た ん 緑 を 切っ て 新た な 位 


点 を 省略 し た 命令 の 使い 方 を し まし た 。 し レ しか し この 


中 か ら 線 を 描か せ た い と き に , 線 が 切れ ず に 困っ て し まう た め , 描き 始め を 区 別 する 細工 が 必 


要 に な っ て きま す 。 
この プロ グラ ム は 描き 始め を , READ X メ で 双 座 標 値 を 読ん だ と き に , その 数 値 が 1000 以 


上 の 場合 に 区 別 さ れる よう に し て あり ます 。 つ まり , 実際 の X 座標 値 に 1000 を 加算 し た デー 
(リス ト 3-5) 


区 区 天天 区 天天 DRT READ 区 革 区 区 区 区 基 区 
RERD X:IF X メ ニー 999 THEN 1 の 
READ Ys: ITF X>= ニ 1 の の の THEN 15g 


X の = ニ メ ー1 の の =: Y ロ =YsREAD XY 
LINE(Xg。Y ウ ) 一 (XY) 。PSET 。7: GUTOU 1 の の 


PQINT (15g。69) 。2。 フ 
PATNT (349。6 の ) 。1 。7: END 


1 1 さ の 。 5 27 。 呈 9 。 27 。 7 。 1 7 の 。 7g 
1 7 の 。 の , 25 。 の 。 25 の 。 1 9 の 。 1 79 。 1 の の 
179 。 1 さり 。 1 の 。 1 3 。 1 の 。 5 の 

132 。59 。 さら 。 9 。 419 。95 。 46g 。 品 の 
の 。 5 。 呈 ロロ 。 1 さ の 。 46 の 。 1 の 。 46 。 日 5 
41 の 13, さ 69 。 ヨ 5 。 さら 。 1 3 。 さ 2 の 。 1 さ g 
さろ 。 。 999 


タ が 。 描 き 始 め を 意味 する わけ で す 。 

110 行 で 。X が 1000 以上 だ と 判断 され る と 
150 行 に 飛び , 1000 を 引い て X の 値 を 本 来 の 
座標 値 に 戻し 。 そ の 数 値 を XO に 代入 し ます 。 
Y0 に Y の 値 を 代 人 人 し た の ち , デー タ 文 か ら 
新しい デー タ を X,Y に 読み 込ま せ , 160 行 
で (X0, Y0) - (X, Y) と し て 描画 し て いま 
す 。 

デー タ 文 最後 の 999 は , READ 命令 の スト ッ パ ー の 役目 を 果たし て いま す 。 こ の スト ッ パ ー 


(写真 3.5 リス ト 3-4.3-5 の 実行 画面 ) 


が な いと ,。 デー タ が 無く な っ て も 。 なお, デー タ を 読み 込 も うと し , out of data エラ ー と な 
っ て プロ グラ ム は 止ま っ て し まい ます 。 100 行 で X の 値 が 999 で ある と 判断 され る と 180 行 に 
飛び, PAINT を 実行 し 絵 は 完成 され ます 。 


@⑯ 配列 に 格納 


メモ リ 効 率 が 良く 。 カ セッ ト や ディ スク か ら の 入出 力も 容易 で す が , デー タ の 入力 用 プロ グ 
ラム が 必要 で す 。 

100 て 140 行 が 入力 用 , 150 行 以降 が 描画 用 の ルー チン で す 。 リ スト が 長く な る の を 避け る た 
め に 最小 限 の 機能 こと と ど め て いま す が , 実用 性 を ち た せる た め に は , も っ と し っ か り し た プロ 
グラ ム に し な けれ ば な り ま せん 。 入力 ルー チン は , も っ と 親切 に 設計 する 必要 が ある し , 描画 
方 法 も も う 少 し 工夫 が いり ます 。 


上 


9 XX%KXX※ え 区 DIMENGTUN 区 交 交 基 区 基 基 (リス ト 3-6) 
1 の INPUT "ムスメ フ ~ テフラ ノ カタ] "sa | 

11g DINM X(a) 。Y(A) 

129 FUR =1 TU azPRINT "No"si ts i 
139 INPUT" X。Y 9^ ヒ ョ ウ "3X(L) 。Y(I) | 
14 NEXT 1 

1 "ーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 一 

| 155 LINE (X(1) 5Y(1) ) 一 (X(2) 。Y(2) ) 。PSET 
169 FUR 1=3 TO Aa 


| 18g LINE-(X(1) 。Y(1) ) 。PSET 
| 199 NEXT I 


46 
配列 に 格納 し た デー タ を 描か せる プロ グラ ム の 一 例 と し て , 参考 に と ど め て くだ さい 。 


人 る @ メモリ に 直接 格納 


ひと つの デー ク を 2 バイ ト の メモ リ を 使っ て , 指定 する 番地 以降 に 格納 し ます 。 マシ ン 語 で , 
この デー ク を *BIOS に 送り 込み , 描画 きる せ て いる の が 普通 で す 。 

マシ ン 語 と 聞く と , ずい 記 ん 速く 絵 が 描け そう な 気 が し ます が , 1 本 の 線 を 引く スピ ー ド その 
も ちの は , BASIC で も BIOS を 利用 レ し た マシ ン 語 で も か わり ませ ん 。 線 を 引く ルー チン は ROM 
の 中 に マシ ン 語 で 用 竜 き され て ちり , BASIC で LINE- と 命令 する と ROM 内 の マシ ン 語 を 呼 
び だ し て 実行 し ます 。BIOS 経由 の マシ ン 語 で も 結局 同じ こと を し て いま す 。 

マシ ン 語 は , デー タ の 転送 や 計算 。」。 ル ー プ に 枯 違 いひ の スピ ー ド が ある も の の , 絵 を 描か せる 
全体 の 処理 を 通し て BASIC と 比べ て みる と , その 速度 差 は わずか な も の で す 。 

一 桃 に , マシ ン 語 だ みかみ ら すべ て が 数 十 倍 , 数 百倍 速い と は いい 切れ な いわ け で , 絵 を 描か せ 
る プロ グラ ム で は , BASIC で も マシ ン 語 に 引け 目 を 感ずる 必要 は あり ませ ん 。 

(* BIOS 一 BASIC Input Output System) 


人 @ 外部 記憶 装置 に 格納 


少し 意味 あい が 異な り ま す が , この 方 法 は ディ スク な ど に 格納 し た 画面 デー タ を 読み 描画 し 
ます 。 プリ ンタ に 対す る ハー ドコ ピー と 似 た よう な 出力 で , 描い た 手順 に 関係 な く 描画 し ます 。 
放 し く は 62 頁 の 「 画 面 情 報 の 直接 転送 」 の 項 を 参照 し て くだ さい 。 


デザ イン ・ シ ー ト を 使 お う | 


デジ タイ ザー な ど 特 別 な 機器 が 無い 場合 は , 座標 の 入力 手段 と し て , グラ ブフ 用紙 な どの 方 眠 
紙 に 原画 を 描い て か ら , 絵 の 座標 を 目盛 を 追っ て 読み 取る 方 法 が 一 般 的 で す 。 しかし, 方 眠 紙 
の 目盛 は 縦横 の 比率 が 1 対 1 に な っ て いる た め , 640 メ 200 ドッ ト の 縦横 の 画面 比 (1 対 0.4495) 
と 異な り , その 調整 に 気 を 配ら ね ば な り ま せん 。 

46 綱 の デザ イン ・ シ ー ト は , 640X200 ドッ ト の 画面 比 に 対応 し た 目盛 を 付け て あり ます 。 
原画 を この シー ト に 直接 描き , その 絵 の 座標 を 目盛 か ら 読 み 取れ ば , その まま 正確 な 座標 デー 


13 


実践 プロ グラ ミン グ 


g8 
ど 【 
g9r 
Gr 


gaSr 
19 
gGr 
も 5 


ご ! 


よ 
Q 


6 


giT 


2 に ) 


284 


g【 上 


4/ 


クタ と な り ま す 。 何 枚 か コピ ー し て お く と 重宝 する と 思い ます 。 


スケ ッ チ ボー - ド プロ グ ラム の 作成 | 


これ まで 述べ た 方 法 は , あら か じ め 絵 の デー ク を 作っ て お き , 決め られ た 手順 に 従っ て 一 気 
に 描き 上 げ て し まう 方 法 を と り ま し た が , 次 に キー を 使っ て 画面 上 に 直接 描く 方法 に つい て 述 
べ て み ま す 。 ディスプレイ を 画 布 に 。 キー ボー ド を 絵筆 に みた て て , 画面 を 見 な が ら 絵 を 描き 
ます の で , な ん と な く 芸 術 的 で 楽し ら プ ログ ラム に な り ま す 。 

直接 。 画面 に 絵 を 描く た め に は 


① 点 を 打つ , ② 線 を 引く , ⑨ 円 を 描く , ④ 色 を 塗る 
この 4 つの 機能 が あれ ば , 一 応 絵 は 描け ます が , どう せな ら も う 少 し 欲 ば っ て 


⑮⑥ ブラ シ 表 示 , ⑥ 画面 の 保存 , ⑦ 画面 デー ク の 読み 込み 

の 3 つ を 追加 し て 計 7 機能 の プロ グラ ム を : み ま し ょ う 。⑤ の プラ シ 表 示 と は スプ レイ で 
絵 を 描く 効果 を わら っ た ちの で , 指定 する 範囲 内 に 指定 する 色 の ドッ ト を ラン ダム に 描き 込む 
ま 。 ま 。 

ム の 構造 は 。 これ ら の 各 機 能 を す ベ て サブ ルー チン に し て , メニ ュー の 選択 で 呼び 


を 
SS 
NII 


START 


498 3 意 実 貴 プ ログ ラミ ング 


だ す 方 法 を と り ま す 。 
この よう に , 1 機能 =1 サブ ルー チン の 形式 に する と , プロ グラ ム は ひと つ ず つ 単 独 で 考え る 


こと が で き ,。 また 機能 の 追加 や 修正 が と て も 楽に な り ま す 。 
園 グラ フィ ッ ク カ ー ソ ル 


絵筆 に みた て る キー 操作 は , GCCURSOR が 重要 な 人 役割 を 果たし ます 。 この 命令 に つい て は 第 
2 章 で すでに 述べ て あり ます が , 士 の 形 を し た GCURSOR を カー ソル キー で 任意 の 位置 に 動 
か し , リタ ー ン キー を 押す と その 座標 が ドッ ト 単 位 で 読め る と いう も の で す 。 

(リス ト 3-7) 


199 BCURSUR ( さ 2g , 199) 。(X1 。Y1 ) 。(X2。Y2) 


11@ PRINT X1sY1。X2iY2 
12g LINE(X1 。Y1) 一 (X2。Y2) 。PSET 


この プロ グラ ム を 実行 する と , まず 画面 中 央 に + の GCURSOR が 現れ ます 。 カ ー ソ ルキ ー 
使っ て GCURSOR を 好き な 所 まで 移動 きせ, リタ ー ン キー を 押す と その 位置 の X, Y 座標 が 
さ 1] と Y] に 代入 され ます 。 さ ら に カー ソル キー で GCURSOR を 動か し リタ ー ン キー を 押す 
と , その 座標 が X2 と Y2 に 代入 され ます 。 代入 され た 各 座 標 値 は 。110 行 の PRINT 文 で 表 
示さ れ , 120 行 の LINE に よっ て 2 点 間 が 結ば れ ま す 。 

PAINT や ゃ CIRCLE な ども 同様 に 、 塗り 始め 、 あ る ろ る い は 円 の 中 心 座標 等 を GCCURSOR で 指 
し 示し な が ら , 少し ずつ 絵 を 完成 させ て いく わけ で す 。 

リス ト 3-8 は , この よう な 手法 に よっ て 組ま れ た 絵 を 描く プロ グラ ム で す 。180 行 ま で が メイ 
ン ・ ル ー チ ン 。 190 行 以降 は 全部 サ プ ル ー チ ン 
の 集まり で す 。 


國 メイ ン ・ ル ー チ ン 


「CONSOLE 0, 22] と し て , 22 行 目 ま で の 
メ 


(リス ト 3-8 スケ ッ チ ポー ド プ ログ ラム ) 


/ 基 大 区区 基 % 区 光 工 ブ カフ ファ ロ フ " ラ /。 ( フケ リ チ ホリ トート"  ) 基 交 区 天天 基 直 基 基 基 
罰 IDTH B の ,25: CDNSULE の 。 22: DIM PIDX(25) 。FICY (25 の の ) 
LINE (の , の ) 一 (6 う 9 ,175) 。PSET 。 7 ,H 

BUSUB フラ の :LUCATE の 。2 う :HN ERROR BOTO 18g 

PRINT "1=LINE 2=PAINT マユ =BRUSH 4=CIRKCLE": 
PRINT" 55=BAVE 6=LOAD ウ =END ":INPUT a 

IF = の THEN IDTHB の : END 

DN GODSUPB 19 の 。 ラ 5 の ,51 の ,6 う 9 , 1 15 の 77 の: BUTU 13 の 
CLOSE : BEEP : KESUME 1 の 

7 芝 基 基 区 区 天天 基 し 了 [ ME 区 区 基 共 基 芝 共 基 基 基 

BDSUE フラ 9:LDCaTE の ,23: ITNPUT "セン フ フー イロ ー" ョ ビ 

PR INT "ウケ ルーCURBDK じ EY+RETURN EEY" ェ 

PR INT" オ ワ ル =RKETUEN に EEY+RKETURN KEY"s 
BCURSUR (2g , ヨ 弓 ) 。 ( メ 2 。Y2) , ビ 

PSET(X2。Y2。C) 

PICX (PCD ) =19 の 9 の: PTCY (PCD) = じ : PCD=PCD+ 1 

PICX (PCD) =X2: PTCY (PCD ) = ニ Y2: ビビ ロニ P ビ ロ +1 


FOUR 「= の 9 TO 1 の の 9: も = ニ INEEY 生 
TF 人 も = じ HRK も (1 う ) 『HEN RETUKN 


NEXT 
X1 ニ X つ ョ Y1 ニ Y ジ 
GCURSUR(X1 。Y1) 。(X2 ィ イジ ) 。 じ 
し LINE(X1 。Y1) 一 (X2。Y2) 。PSET 。 じ 
PITCX(PCU) ニ = ニ X2 ェ ピ ICY(PCU) ニ Y2 ェ ビビ ロ = ビビ ロ + 1 
GUTOU 27 の 
^ 区区 天天 基 基 基 天 天天 ピロ ITNT 共 基 基 基 芝 基 基 基 区 
BUGUB 73 の:LUCATE の 。 ジ マラ 
INPUT " 到 ル イロ ニー リョ ビュ に ビデ g 
に K じ = に じ +1 :LUCATE の 。2 ミ 
PRINT "キョ ウ カ イー ミミ ョ フリ " ュ ョ に じ ビュ ュ TENPUT に じ も 
IF KK じ ま = ニ "リリ UK に ビニ ヨ THEN 42 の 
に K (KC) =VaL (に じ も ) : GBDTU 389 
FUR =KC TU アミ に (JJ) = に (に ビー1 ) s NEXT 
GCURKSUR( ミ 2 の 。 85) 。(X 。Y) 。 じ 
PQINT(X。Y) 。C。K(1) 。 に (2) 。 に ( う ) 。 に (4) 。 に (5) 。 に (6) 。 に に (7) 
FICX (PCU) =29 ウ =:PICY(PCOU) = じ :P ビ ロニ PC0U+ 1 
PTICX (PCHU) = ニ X:PTCY (PCOU ) = ニ Y = ビビ ロミ P ビ ロ + 1 
PICX (PCH) =K【(1 ) 
FUR ゴ = ニ 2 TU アイ: に = ニ RTGHT 和 まま (STR も (に (J) ) 。1 ) 
に じ も = に じ も + に 和 も = NEXT = ビ ICY (PCO ) =VAL (じゃ ) 
PC ロロ =PC ロ + 1 : RETURN 

王 1 区 区 ERUGH 区 区区 区 区 基 基 共著 


50 .。 3 章 。 実践 プロ グラ ミン グ 


GUSUB 73 ウ :LUCEATE の, デ う 
ココ 3 INPUT リ ブラ シー フー パロ = リュ ミ ビ 
ら 4 の の GCURSUR(32 ウ 85) 。(X1.Y1) 。 (XS YE) 。 じ 
55 FUR BE=X1 TU X2 STEP SGGN(X2ーX1 ) 
6 P=BS(Y1-Y2) =FHR エ = TH F/ ロ 
7 ウ IF Y1:Y2 THEN Y=Y2 ELSGE Y=Y1 
Sg PSET(B。RND*P+Y 。C):NEXT 1I,E 
599 PICX (PCHU) =3 ウ 9 の: FICY(PCEO) =C: PCOU= ニ FCU+ 1 
6 PICX(PCEU) =X1:PICY(PCHU) =Y1 : FCU=PCU+ 1 
619 PICX (PCOU) =X2EPICY (PCEUD) = ミ Y2 PC ロニ PCOU+ 1 
629 RETURN 
ス 候 「 表 天天 間 基 基 キ CTRC じ LE ※※ キ ポポ ポポ 基 
64 GUSUB 73g:LUCRTE の デラ 
659 INPUT "エフ ノー ロー" リュ ビュ LUCRTE 2 さ 
66 PRINT"+ 9 の ウ コ " カ シ チュ ウフ ト リフ ケイ ラ セ g ト ジテ クダ サイ リ ュ 
ら 679 GCURSUR (3 さ 29 85) 。 (CX 。CY) 。K(HX JHY) 
S8g CIRCLE(CX 。CY) ,QBG( じ ビ XーHX) 。 ビ 
699 PICX(PCU) =4929g:FTCY (FCO) = ビ : FCU=FCOU+ 1 
7 の PICX(PCEH) =CX:FICY (FEH) =CY: FCU=PC0D+1 
719 PFICX(PCOU) =aEGS (CX-ーHX ) : F ビ ロ = ニ PCH+ 1 
72g RETURN 
/ さ 9 "ーーーーーーーー 一 カラ ー チャ ー ト ーーーーーーーーーーー 一 
74g LUCATE の 。22:PRINT" 9 "kiFUR ビ =1 『TO Z 
75g CULUR C+ ヨ :PRINT C:』" 号 還 "』:NEXT C:COULOUR ア 
76@ PRINT"LSTEFP"』PCU: "1 "sgFREINTSGFRCE も (1 コワ 9) s:RKETURN 
アフ 7 区 共 ※ 天 ※※ ピ ビ し GRD ※※ を 区 天 ※ 革 区 区 区 区 区 天天 天天 
7 INPUT "FILE NaME " ュ N ま 
79@ FCU=@: UHFEN" エリ 。1 、N も INPUT 持 1 。PCL 
Bgg FUR FL= の の TU FCL 
8B19 INPUT#1 。FICX(FL ) : INFUT 后 1 。PICY (PL ) 
829 NEXT:PICX (PCL ) =9999: CLOSE 后 1 
83g CLS:LTINE (9。9) (639 。17 呈 ) 。FSET 。7 。B 
4 IF PICX (PCH) =9999 THEN RETURN 
Sg IF PICX(PCH) =19929 THEN C=PICY(FPCOU) : GUSUE 1 の 
6 IF PICX(PCU) =292 の 9 THEN C=F'ECY(PCD) : G0GUE ヲ と の 
7 IF PICX (FCO) = さく 299 THEN ヒビ =FICY (PCH) : B05UE 1 の 2 
BB IF PICX(PCHU) =4 の 999 THEN =PICEY(FCO) : GSGUB 1 1 の の 
PCU=PCU+ 1 : GUTU 4@ 


PC0=PCO+1 : IF PICX (PCO+1 ) >= ニ 1 の 29 ロ THEN 9 
792 の X1=FICX (PCO) : Y1=FICY (FCD) 

9 コ の X2= ニ FICX (PCO+1 ) : Y2=PTPY (FEO+1 ) 

LINE (X1,Y1) 一 (X2,Y2) ,PSET 。C: BUTD 91 


PSET(PICX(PCUD) ,。PICY(PCO) 。C) : RETURN 


メ =PICX(FCOUT1 ) = マモ ビ ICY (PCOU+T1 ) 

(1)= ニ PEIC ビ X(PCUT2) FUR J=2 TO Z 

に (けけ ) ニモ VaL (人 ID も (STR 和 (PITCY(PCUTS) ) 。 ゴ 。1) ) giNEXT J 
PINT(X 7) ビ 。 ビ に (1 に 人 (2) に () EE(4) に (5) 。E(6) 。 に (7) 
PCU=PC0U+2: KRETURN 


X メ 1= ニ PITCX (PCUT1 ) : 1= ニ PTCY(PCOU+T1 ) 
X メ 2 デニ PICX (PCDU+ |) =: アク ニモ ビエ ビ イ (PCOU+2 ) 
FURK B= ニ X1 TOU X2 STEP SGFH(X2ーX1 ) 
P= ム ABS (Y1ーY2) :FUK 1= ウ TU P/5 
IF Y1>Y2 THEN イニ Y2 ELSE YY1 


PSET (BE, KND*P+Y 。 じ ) : NEXT TB 
PCU=PC0U+2: KETURN 


CIKCLE 
メ 1= ニ PITCX (PCOU+ す 1 ) =: Y1 ニ ピエ ビア (ビビ ロ + ィ 1 ) 
2= テ PITCX (PC0U+2) 
CIRCLE(X1 4Y1) 。X2 ビ 
PCU=FCU+2: KRKETURKN 
還 却 エエ エズ エエ テ エ エネ ネズ エ : 還 は ミイ ^1 ト ルコ : エエ エエ そそ テテ エ テ そ エ テ そ そそ ティ 
INPUT"FILE NAME " ュ N 和 
OPEN"0 。 提 1 。N も :PRINT 提 1 FCO 
FOUR FL= の ウ の T0D PCO 
PRINT# せ 1 。PICX(PL ) : PRINT 提 1 。 ビ ECY( ど PL ) 
NEXT: CLOSE##1: RETURN 
FUR = の 9 TO FCU:FKINTPTCX(T) 。PICY(i) NEX 生 


5 ロン Hf , ) ユ 
ー ル の 及 衝 を 妥 、 


5=SAVE 画面 に 描い た 絵 の 座標 デー タ を 記録 する 。 
6=LOAD 絵 の 座標 デ ー タ を 読み 込み , 描画 する 。 
0=END プロ グラ ム の 実行 を 終了 する 。 


以上 の 7 項目 で 項目 名 の 頭 に ある 0 て 6 の 数 字 を 入力 する と , ON A GOSUB 文 に よっ て 
対応 する サブ ルー チン を 呼び ます 。 


同 (1) LINE 


1 を 入力 する と 最初 に 線 の 色 を 求め て きま す 。 上 部 の カラ ー チ ャ ー ト か ら 0~7 の 色 を 選び , 
その 数 字 を 入力 する と , 画面 中 央 に 指定 し た 色 の + (GCURSOR) が 現れ ます 。 次 に 画面 の 下 
に 次 の よう な 表示 が 出 ます 。 

ツ ヅ ケル = CURSOR KEY 十 RETURN KEY 
オ ワ ル =RETURN KEY 十 RETURN KEY 


任意 の 位置 まで + を 動か し , リタ ー ン キー を 押す と その 位置 が 始点 と な り , 指定 色 の 点 が 表 


さ 
ン 


され ます 。0.5 秒 ほ ど で ,。 点 は + の 表示 に 変わ り ま す の で , 再び を 動か し 任意 の 位置 で リタ 
ー ン キー を 押し て くだ さい 。 二 は 消え 始点 か ら そ の 位置 まで 線 が 引か れ ま す 。0.5 秒 ほ ど た つ と 
こ 十 


が その 位置 に 現れ ます の で , 同様 の 操作 を 繰り 返し , 次 々 と 線 を つなげ 絵 を 描い て いき 


- 
ここ 
と 。 
細 
ュー 


し る まで 0.5 秒 の タイ ミン グ を と っ て いま す が 。 これ は 続け る か 終わ る か の 判断 を 待 
っ て いる た めで , が 表示 され る 前 に 再度 リターン キー を 押せ ば , LINE の 実行 は 終了 レ し メニ ュ 
に 戻り ます 。 つ まり 、 カ ー ソ ルキ ー で を 移動 きせ た 後 。 リタ ー ン キー を ポン ポン と 2 回 た 


た く と 線 の 描画 は そこ で 終了 し , 1 回 し か 押さ なけ れ ば 続行 する と いう 仕組 み で す 。 


塗る 色 と 境 界 色 を 求め て きま す の で 。 それぞれ 入力 し て くだ さい 。 境界 色 は 7 つま で 指定 で 


例え ば 2 つの 同心 円 で は きま れ た ドー ナツ 状 の 範囲 を 塗る 場合 を 説明 し ます 。 内側 の 円 は 赤 
で , 外 開 の 円 は 黄色 で 描か れ て いろ も の と し , これ ら の 円 の 色 を 境界 色 と し , 中 を 紫 で 塗る と 
し ます 。 


ヌ ロ 
キョ ウ カ イシ ョ ク 17 ニ = と 出 ます 。 1 本目 の 境界 色 を 開い て いま す の で 赤 で すか ら 2 と 


(か 
[すい 1 


キョ ウ カ イシ ョ ク 27? ニニ 2 本 目 の 境界 色 を 聞い て きま す の で , 黄色 で すか ら 6 9 です 。 
キ ウ カ イシ ョ ク 37 三 と 聞い て きま す が 3 本 目 は 必要 な い の で 9 の み 押 し ます 。 これ て 境 


界 色 の 入力 は 終わ り で す 。 その 後 二 が 画面 中 央 に 現れ ます の で , 塗る べき 領域 まで 十 を 移動 き 


せ リ クー ン キ ー を 押す と PAINT が 実行 され ます 。 
実行 し て くだ る い 。 領域 を 囲む 境界 線 が 完全 に 閉じ られ て い 
レ し まい ます 。 ま た 境界 色 の 指定 も 同様 の 意味 で 慎重 


PAINT は 細心 の 注意 を 払っ て 
な いと 。 せっ か く 描 いた 絵 が 塗り 消 る れ て ! 


に 行なう 必要 が あり ます 。 


園 3) BRUSH 


面 面 中 央 に 二 が 表示 され ます 。 プ ブラ シ の 範囲 を 十 を 移動 きせ 2 点 


間 
指定 し ます が , 2 点 問 の 対角線 を 持つ 四角 の 中 が その 租 囲 と な り ま す 。 つま り , LINE 命令 の 
BOX) 指定 と 同じ で す 。2 点 問 を 指定 レ リ ク ー ン キー を 押す と , その 範囲 が 指定 色 の ドッ ト 


で 埋め ゆめ られ ます 。 ド ッ ト の 密度 は 560 行 の P/5 の 値 を 変更 する 


こと に より 変え られ ます 。 


この 部 分 が プラ シ の 銘 囲 


( 図 3-3) 


54 3 章 実践 プア ログ ラミ ング 


因 4) CIRCLE 


円 の 色 を 入力 する と 十 が 現れ ます 。 円 の 中 心 と な る 位置 まで 填 を 動か し て リタ ー ン キー を 提 
次 に 半径 (円 の 外周 ) 位置 に を 移動 させ リタ ー ン キー を た た く と 指定 し た 円 が 描画 で き 
ます 。 半径 の 指定 は X ( 横 ) 方 向 で 行ない ます 。 


園 (5) SAVE 


これ まで 描い た 絵 の デ ー タ を テー プ や ディ スク に 記録 し ます 。 フ ァイル 名 を 入力 し リタ 
キー を 押す と 記録 を 開始 し ます 。 が 2458 プア イル 名 は 8 文 X 字 以内 に し て くだ さい 。 


固 (6) LOAD 


テー プ や ディ スク か ら 絵 の デー タ を 読み 込み 描画 し ます 。 セ モー ブ し た 時 の ファ イル 名 を 入力 
し , リタ ー ン キー を 押し ます 。 


9 デー タ の 構造 


絵 の デ ー タ を 記録 し た り 。 あ る い は 読み 込ん で 描画 きる せる た め に は , デー タ の 構造 を 決め て 
お か な けれ ば な り ま せん 。 こ の プロ グラ ム で は 。 配列 変数 PICX (n) に X 座標 。PICY (n) 
に Y 座標 を 格納 ミ させ る こと を 原則 に し て いま す が , 処理 の 流れ を コン トロ ー ル する 値 な ども 入 


図 3-4 は 各 機 能 ご と の デー タ の 構造 で す 。 デ ー タ の 最初 に 1000 と か 2000 の 数 字 が ある の は 
機能 の 区 分 の た めで す 。 デ ー タ を 読み 込ん で 描画 する と き , た と えば 1000 の 数 字 が あれ ば 
LINE の ルー チン へ 。2000 が あれ ば PAINT の ルー チン へ と , この 数 字 に よっ て 処理 の ルー 
チン が 自動 的 に 選ば れる こと に な り ま す 。 850~880 行 の IF 文 が .。 そ の 処理 を し て いま す 。( 図 

PAINT 機能 の 境界 色 は 少し 変わ っ た デー タ の 格納 方 法 を と っ て いま す 。 境界 色 の 数 は 7 つ 
まで 指定 で きる の で す が 。, 常に 7 つ 分 の 配列 を 確保 し て お く こ と は メモ リー が 無駄 に な り ま す 
の で , デー タ の 圧縮 を 試み まし た 。 圧 縮 は 文字 列 を 使用 し ます 。 境界 色 の 数 値 を , ひと つ ず つ 


PIC と ( ロ ) 


_LINE | 


PIC Y(n) 


PIC X(n) 


の 9 


PIC Y(n) 


PIC メ (n) PIC Y(n) 


文字 列 に 直し , それ ら の 文字 列 を 全部 つ な 
いで し まい ます 。 ひ と つ に な っ た 文字 列 を , 
今度 は 逆 に 数 値 変 数 に 直し て し まう と デー 
タ の 圧縮 が 出来 あがり で す (480, 490 行 ) 。 
この デー タ を 読み 込ん で 描画 きせ る と き は , 
送 の こと を 行なっ て ひと つ ず つ 境 界 色 の 数 
値 を 取り 出し ます (980, 990 行 )。 

な お , デー タ を 格納 する 配列 は PICX, 
PICY と 5 も 2500 まで と っ て あり ます 。 2500 
を 超え る デー タ の 格納 は で きま せん 。 また, ( 図 3-5 デー タ の 流れ ) 
厳密 な 入力 チェ ッ ク は し て いま せん の で , 


56 3 章 実践 プロ グラ ミン グ 


と ん で も な い 値 を 入れ る と エラ [sz] [| [| [5 [| | 美加 (雪代 


ー が 生じ る こと が あり ます 。 

ェ ラ ー が 起き た と き は , 一 応 トト d+ トト トド 69 | 文字 型 に 直し , 連結 
ON ERROR GOTO 文 に よっ 
て 強制 的 に メニ ュー に 戻し て い 


ツ 
234567| 連結 結果 
マメ 


ます 。 
プロ グラ ム を 打ち 込む 際 。 完 ( 
234567 数 値 型 に 直し , 圧縮 完了 
動 が 確認 きれ る まで は , ON 
ERROR GOTO と ,CONSOLE ( 図 3-6 デー タ の 圧縮 ) 
文 + 取 っ て お いた ほ う が 押 難 で (Geg 


⑯ 上 手 に 絵 を 描く た め に 


CCURSOR の 填 を 目 で 追い な が ら 絵 を 描く プロ グラ ム は これ で 完成 し まし た 。 一 応 は 何で も 


描く こと は 可能 で す が , 画面 上 に 直接 完成 度 の 高い 絵 を 描き 上 げ る こと は , な か な か 難し いも 
の で す 。 簡単 で 能率 的 な 一 方 法 を 紹介 し て お きま す 。 
(1) 使用 ディ スプ レイ の 画面 と 同じ 大 きる の 下絵 を 描く 。 


(3) モル を 画面 に 貼り 付け ,、。 プロ グラ ム を 起動 する 。 
(4) モル に 描か れ た 絵 の 線 を な ぞ る よう に し て , GCURSOR を 動か し 画面 に 絵 を 描く 。 
セル に 描い た 絵 が 判別 し や すい よう に 。 あらかじめ 画面 全体 を 青 な ど で PAINT し て お く と 


作業 が 楽に な り ま す 。 絵 の 輪郭 が 描き 込め たら セル を は が し て , 各 領 域 の PAINT を 実行 すれ 


ディ スク に その デー タ を 記録 し て か ら , 作業 を 続け る よう に する と 間 違 
ゝ が あり ませ ん 。 特 に PAINT の 実行 前 に は , SAVE し て お いて か ら の ほう が 無難 で す 。 境 


に ,。 せっかく 描い た 絵 が みる みる うち に 塗り 消さ れ て し まっ て は 後 


三 
に と 2 


6 
2 誠 明 セ ル 


* 


下絵 


( 図 2-7) 


人 スケ ッ チ ポー ド プ ログ ラム で 作成 し た 絵 


(写真 3-10) 


ーーーーーーーー 58 3 音 実践 プロ グラ ミン グ 


| 中間色 の 表現 方 法 | 


F・BASIC Ver.3 は , ドッ ト 単 位 で 黒 を 含め 8 色 の 表示 が 可能 で す 。 8 色 使 えば 大 概 の こと は 
で きる の で す が , 本 格 的 な グラ フィ ッ ク 表 現 を 追求 する と な る と 少々 心細い 感じ は 拭え ませ ん 。 
中 間 色 と いう 言葉 が 適切 か どう か は 疑問 で す が , マイ コン の 世界 で いわ ゆる 中 間 色 と は , 黒 

表 、 赤 , 紫 , 緑 , 水色 黄 。 白 の 基本 8 色 以 外 の 色 を 指し ます 。 
パソ コン で の 中 間 色 合成 の 具体 例 を 述べ る 前 に , 三原 色 に つい て 考え て み ま し ょ う 。 三 原色 
と は 。 あ ら ゆ る 色 の 合成 を 行なう うえ で , 基本 と な る 3 つの 色 を 指し , “ 光 の 三原 色 ? と ヾ 絵 の 
具 の 三原 色 ” の 2 つの 系 統 が あり ます 。 
光 の 三原 色 を 使用 し た も の に , カラ ー テ レビ の プ ブラウン管 。 絵 の 具 の 三原 色 を 使っ た も の に 
印刷 の カラ ー 写 真 な ど が あげ られ ます 。 プ ブラ ウン 管 や 印刷 物 を ルー ペ て 拡大 し て みる と , 三原 
また 。 ある 色 の と き は 三 


7 


色 だ け で 構成 (実際 は 黒 も 入り 4 色 ) され て いる の が 確認 
原色 の 赤 が 強まり , 別 な 色 の 場合 は 青 が 弱 ほ っ て いる こと に も 気付 く と 思い ます 。 この よう に 。, 


あら ゆる 色 は 三原 色 の 個々 の 明度 ( 強 さ ) を 微妙 に 変化 させ る こと で 表現 する こと が で きま す 。 


個 ③ 訟 


\ 
| 


の 

に 9 
ご 
密 ご 


( 図 3-8 三原 色 ) 
AV を 除く FM-7 で は この 明度 の コン トロ ー ル が で きま せん 。 三原 色 の 各色 は , 克 く か 消え 
る か の いずれ し か 選べ ず , 三 色 の オン ・ オ フ の 組み 合わ せ (2 の 3 乗 ) で 8 色 表 示 に と ど ま 
っ て いま す 。 


59 


2 色 の 組み 合わ せ で 作る 中 間 色 | 


リス ト 3-9 は , 2 色 の 混合 で 中 間 色 を 合成 すろ る プログ ラム で す 。 
COLOR1 ? 
COLOR2 ? 
と 順に 聞い て きま す の で , 0 て 7 か ら 任 意 の カラ ー 番 号 を 入力 し て くだ さい 。 COLOR1 の 色 で 下 
地 を 塗っ た あと , COLOR2 の 色 を 割り 込ま せ て 中 間 色 を 作り ます 。 
写真 3-11 は , この プロ グラ ム の 出力 画面 で す 。 左 と 右 に 同じ 色 の 中 間 色 が 表示 され て いま 3 
が , 左 は ドッ ト を 縦 並 び , 右 は 斜め に 並べ て いま 写真 で は 両者 と もち 同じ よう に 見 える と 思 


いま す が , 実際 の 画面 で は モア レ の 現れ 方 に 違 ら が 生じ て いま す 。 どちら が 良い か は , 好み の 


ゃ D9 


問題 も あり 一 概 に は 言い 切れ ませ ん 。 縦 の ほう は プロ グラ ム の 構造 が 簡単 で , 描画 速度 も や や 


斜め 並び の ドッ ト 
レレ 
ン 

| 


| 
上 


ク 


の 


(写真 3-11 導 と 言 め 並び の 中 間 色 表示 ) ( 図 3-9) 


60 3 章 実践 プロ グラ ミン グ 


速く な り ま す 。 組み 合わ せる 色 の 種類 や ディ スプ レイ の 解像度 に も より ます が 。 3 色 以 上 の 場 


合 は 斜め の ほう が 良い よう て 


(リス ト 3-9 2 色 の 泥 合 ) 


1 の 切 XX えつ ヨー 2 コッコ” の 共著 導 共 共 半 天 状 
| 119 CLS 

129 INPUT "CHLUR1 "』C1 

13g INEUTRCOCDRZ HP アッ 

4 ソー ニー ニニ ニー ニー ニー ニニ ニニ ニニ ニー ニー ニ ーー ニ ニニ ニー ニニ ー ニ ーーー ニーー 
15 LINE(13 の 。19) 一 ( さ 1 ,19g) 。PSET 。 じ 1 。BF 
16 し INE【 さ 39。 1)-(51g。199) 。PSET ,C1 。BF 

1 ニー ニニ ニー テー デニー ニー ニー ンー ニー デニ ニー ニニ ニニ ニー デ ーーー デーーー デ 
| 1 ヨ Hg FUR 1=g TU 1 ヨウ STEP = 

| 19 り の LINE(13+1 。1 の ) 一 (13g+1 。199) 。PSET 。 じ S 
29 切 LINE (ささ の + 1 。19) 一 (ささ の 。 1 の +1 ) 。 PSET 。 2 
21 LINE(S10。 19+1) 一 ( さ ミ の +1 。 199) 。 PSET 。 じ 2 


229 NEXT 
mm ズー 


リス ト 3-10 は , 2 色 の 組み 合わ せ に よる 中 


間 色 の カラ ー チ ャ ー ト 表示 プロ グラ ム で す 。 
FOR て NEXT の ルー プ が 3 重 ZD Ge 還 a 
解 し づら いか も 知れ ませ ん 。 図 3-10 は 各 


CR 


ーー ーー ーー 
0 ト を 示し た の て 3 が 。 実際 の 色 は 第 1 
ミー ーー 
ー 写 胡 を 委 昭 | テッ 
ツガ フー 与 和 具 を 参照 し て くだ さい 。 


(リス ト 3-10) (写真 3.12 み カラー チャ ー ト ) 


| 19 "XX 力 ラー チャ ー ト / 2 ショ フワ ノ コ フ コ "リウ ※ 革 基 基 老 

| 11 FUR BC= ウ の TOU 7 | 
129  BX1=BCxBg: BX2=BX 1 + ヨ g | 
13g の LINE(BX1 。 ウ ) 一 (BX2 199) 。PSET 。 BC 。BF 
149 FUR LC=g ウ TO 7 

| 15 FUR 1I=BX1 TU BX2 STEP 2 

| 169 LY1=LC*25: LY2=LY 1 +25 

| 17g LINE( 1 。LY1) 一 (ILY2) 。PSET 。LC 
18g NEXT 1 

| 19g NEXT LC 

299 NEXT BC 


し ーーーーーーーーーー 


| 3 色 の 組み 合わ せ で 作る 中 間 色 


( 巡 3-10 カラ ー チ ャ ー ト の 構成) 


3 色 使う と 表現 で きる 中 間 色 の 種類 は グン と 豊富 に な り ま す 。 リ スト 3-11 は , 3 色 で 表現 す 
る 中 間 色 プロ 


グラ ム で す 。 実行 方 法 や 画面 表示 は 。 


リ 
な 組み 合わ せ を 入力 し , 微妙 な 色あい を 楽し ん で くだ さい 。 


(リス ト 3-11) 


1 の の 
11 の ウ 
12 
1 3g 
1 うら 
1 4 の 
15 の 
1 6 の 
1 7 
18 の g 
19 の 
195 
2 
2 の 5 
21 の 
215 
コ 2 の 


^ 共 基 基 基 基 天天 天天 ショ ブフ ノ コ フ コ ~ の 共著 基 基 基 基 基 基 基 


CLS 
INPUT "CULUR1 "』 ビ 1 

INPUT "CULUR2 "』C2 

INPUT "CULUR さ "』 ビ S 

LINE (1 さ g。19) 一 ( さ 1g。199) 。PSET , じ 1 ,BF 

LINE (ささ 。 1 の ) (51g 。19 の ) 。PSET 。 じ 1 。BF 

FUR 1I=g TU 18g STEP る 

LINE (1 ミロ +1 。 1 の 9) 一 (13+ 1 。19) 。PSET 。C2 
LINE (13+ エ +1 。1 の ) 一 (13 の + エ ィ 1 。 19 の ) 。PSET 。 じ う 
LINE (ささ g+ 1 。 1 の ) 一 (ささ の 。 19+ 1 ) 。PSET 。 ビ 2 

L INE (ミキ エ +1 。 1 の ) 一 (さる 3 。 1 ロ + エ +1 ) 。PSET 。 じ さ 
LINE ( 呈 19。 1 の +T ) 一 (ささ g+T 。19 の ) 。PSET 。 ビ 2 
LINE ( 紀 1 。 1 の + エ +1 ) 一 ( さ う の + エ +1 。 19g) 。PSET 。 じ さ 
NEXT 


es 3 生業 時 2 


画面 情報 の 直接 送 法 と スケ ッ チ ボ に ン 


細山 に 示さ れ て いろ る 図形 な どの 情報 を デ も セ ま と コー フラ ニニ 
画面 に 表示 され て いる 図形 な どの 情報 を ディ スク に 直接 格納 する 一 方 法 を 紹介 し ます 。 


スケ ッ チ ボー ド プロ ウシ ルド ⑱ 人 は 。 i 今度 の 方 法 は 。 V- RAM 


こよ ら ず , 画面 上 部 か ら 1 


ライ ン ず っ 転 送 し 。 画面 を 記録 し ま の SE 
「 プチ フ 転送 し , 画面 を 記 団 し ィ ス ク か ら 読 み 込 みな が ら 


面 全休 王 4S KK バス と ーー 5 シ の 
面 全体 で 48 K パイ ト も ある わけ で すか ら 無 理 ち あり ませ ん 。 テー プ 使 用 の 場合 は , 座標 の デー 


け に ! ませ ん ズ > 佑 と ケ H 
22 ワ け に は いき ませ ん 。 ミー シッ ク で 使え の 30 K パイ | ト あま り の メモ 性 全 = 部 2 列 の 確保 に 


回 | し て も る 器 り な くり キ ます ー ーー シリ テ - ] 二 v 
回 し て も 足り な く な り ま す 。 こ こ で は ,。 横 1 ライン 640 ド ッ ト 分 ずつ 配列 に 入れ る 方 法 を と り 
ネ レバ こ 。 | は 整数 刑 で 120 個 と れ ば 良い じ ら こ と に な り ま す の で 。 無駄 な メモ リー を 


63 
使わ な く て すみ ます 。 
國 転送 の 実験 


最初 に 。 リ スト 3-12 の プロ グラ ム を 考え て み ま し た 。130 行 の GET ⑨ で , 1 ライ ン 分 の デ 
ー ク を 配列 E % に 格納 し , 140-160 行 の FOR 文 で E% (0) ~E % (120) まで の それ ぞ れ 
の 値 を ディ スク に 書き 込ん で ゅ ます 。 220 行 の FOR 文 は , 画面 上 部 か ら 1 ライ ン ず つ 199 ライ 
ン ま で の ルー プ で す 。 

リス ト 3-13 は , リ スト 3-12 で 書き 込ん だ デー ク を 読み 取り , 画面 に 出力 する た め の プ ログ 
か 。 


(リス ト 3-12) 


1 の DINM EZ ん (12 の ) 
11 の ロ PEN "0 。 持 1 "VERaF" 
12 の FOUR Y= の TO 199 


13 の BET@A(g。Y) 一 (639 。Y) 。EZ 
14 FOR 1= の g TO 129 

15 の PRINT 提 1 EZ(1 ) 

| 16g NEXT I 

17g NEXT Y 

18 の CLUBSE 韻 1 : END 


(リス ト 3-13) 


DINH EX(120) 
21 の UPEN "1 。 持 1 。"VRaH" 

22 の FUR Y=g ウ TO 199 

の FUR T『=g TO 12g 

<4 の INPUT 提 1 。E ん (1 ) 

2 ら 5 の PUTGA(g 。Y) 一 (639 。Y) 。E ん PSET 
26 の 9 NEXT エ 

27 の NEXT Y 

2 の CLOSE# 1 : END 


この リス ト を 見 て いた だ けれ ば , 画面 情報 の 基本 的 な 転送 アル ゴリ ズム は 理解 し て も ら え る 
と 思い ます が , 正直 な 話 。 この プロ グラ ム は 使い も の に な り ま せん 。 ディ スク を 使っ て も 。 昼 
寝 が で きそう な くら い 転 送 速度 が 遅い っ の で す 。 一 番 の ネッ ク は , 120 個 の 配列 転送 の ルー プ で 
す 。 1 ライ ン ず ン つ 実 行 す る た め の ル ー プ が 200 回 あり ます の で て で, 2 つの ルー プ で は 24.000 回 も 


64 3 章 実践 プロ グラ ミン グ 


園 マシ ン 語 の 助け を か り る 


120 個 の 配列 を バラ バラ に せ ず , 一 度 に 転送 で きれ ば , 単純 計算 で 120 倍 の スピ ー ド アッ プ が 

で きま す 。 た め の デ ー タ の 圧縮 に は 文字 列 を 使う こと が 考え られ ます 。 し か し , ペー シッ 
で 120 個 の デー タ を 全 部 つなげ て ひと つの 文字 列 に 直す た め に は ,、 それ だ け で か な り の 時 科 

Co 


園 変数 の 格納 法 を 知る 


マシ ン 語 で , 配列 に 入っ て いる 複数 の 数 値 を 。 1 つの 文字 列 に 置き 換え る た め に は , F- 
BASIC 自体 の 中 身 に つい て 知る 必要 が あり ます 。 特に , 各 型 の 変数 が どの よう に メモ リー 
に 甘え られ て いる か を 理解 する こと が 重要 で す 。 


数 弄 


仮数 部 


文字 列 が 格納 
され て いる ホイ ンタ 


図 3-11 は 。 デー タ の 格納 形式 を 示し た も の で す 2 
示 め され る アド レス は ,。 この 図 の 0 の 位置 数 を 格納 し て いろ る 番地 
を 与え る 命令 で す 。 


束 数 型 の 変数 は 。 ひ と つの 値 を 格納 する た め に 2 バイ ト の メモ リー を 使用 し , 上 位 と 下位 に 


「t 
IN 
ヽ ご 
9 
1 
ンコ 
レッ 
で 
ブ 
レ ョ 


62 


ふり 分 け て いま す 。 こ れ は , 1 バイ ト で は 256 まで の 数 値 し か 扱え な いた めで ,。 2 バイ ト 使 うこ 
と に より , は じ め て 十 32767 一 一 32768 まで の 値 を 入れ る こと が で きる か ら で す 。 

丈 数 刑 の 配列 の 場合 は , 図 3-12 の よう に な っ て いま す 。 デー タ は 配列 順に 従っ て 2 バイ ト ず 
つ 上 整然 と 並ん で お り , DIM 文 で 宮 言 し た 配列 の 数 だ け メ モリ ー が 確保 きれ て いま す 。 


・ 人 がい 


右側 の 数 字 は 
配列 の 順 を 表わし て いる 


・ つの ご で 


( 図 3-12 式 数 形 配 列 の 格納 形式 ) 


國 デー タ を すり 替え る 


さて ,。 これ で 和 整 数 型 の 配列 が どの よう に メモ リー に 格納 され て いる か が わか り ま し た 。 デ ー 
タ 圧 縮 の た め に , 整数 型 配列 の 各 デ ー タ を 全部 まとめ て ひと つの 文字 列 に し て し まう た め に は , 
メモ リー 上 に 展開 され ん た デー タ の 並び を 利用 し ます 。 こ こ で , 

DIM E% (120) 
DMS=SPACES (240) 

と 設定 する と 配列 変数 FE %% に は 120 個 分 の 配列 (正確 に は 0 を 含め て 121 個 ) が 用 意 さ れ , 
240 バイ ト の メモ リー が E % の た め に 確保 され ます 。 ま た , 文字 変数 の DMS に は 240 個 の 
空白 が 代入 され , 同じ く 240 バイ ト の メモ リー が 確保 で きま す 。 

デー タ の すり 替え は , E % の 配列 が 展開 され て いる メモ リー を , DMS の た め に 確保 きれ 
て いる メモ リー 空間 に 転送 し て し まう こと で 可能 に な り ま す 。( 図 3-13) 

この メモ リー の 転送 を .。 ベー シッ ク の PEEK, POKE を 使っ て 行なう の で は 時 間 が か か 
り 過 ぎ て し まう の で 。 この 処理 だ け は マシ ン 語 に まかせ た ほう が 無難 で す 。 処理 は 240 回 の ル 
ー プ と メモ リー の 転送 だ け で す の で , マシ ン 語 と し て は 最も 簡単 な 部 類 に 入り ます 。 


E% 


と こさ 


0)=1 
E %( 1 ) = 
E %( 2 ) = 3 と する . 


(リス ト 3-14) 


| gg1 ggO 


92 
90993 
(9994 
9995 
996 
997 
9 の 8 
の 90909 
91 の 
gg1 1 
gg12 
J913 
(914 


ad 
6Bg 
6B9 
6B1g 
6B18 
6B2 
6B2 
63 の 


6B. ぅ 8 


99 の gg 
の 999 の 
6Bg4 
6Bg4 
6Bg4 
6Bg6 
6B の 9 
6BgD 
6B の D 
6BgF 
6B1 1 
6B1 ふ 
6B15 


C6F の 


20 は , キャ ラク タコ ー ド で 


空白 を 示す . 


( 図 3-13 デー タ の すり 替 ぇ ) 


BE6BQ の 
1 の BE6B の 2 


n6 ヨ g 
人 7 
Cg の 1 
26F8 
う 39 


+ さ 
9 
6B 
26 
の 
| 
の の 
9 の 
9 


ミキ キキ キキ キキ キキ キキ キキ キキ キキ 


LOUP 


24 の の リー イト ノ テフラ ソウ 
ュ キキ キキ キキ キキ キキ キキ キキ キキ キー 
RG も 6B の 4 
LDB 拉 和 も ま Fg 
LDX も 6Bg 
LDY も 6B の 2 
LDR メキ 
STR  。Y+ 
SUBB 揚 1 
BNE LOUP 
RTGS 
+7 5um 
6B sDF 
合 7 = の 8 
ウ の =:B 
の の : の 9 の 
の の =: の の ウ 
g り : の の 
の の = の の 
のり : の の 


6Z 


本 書 で は マシ ン 語 の 説明 は 省き ます が ,。 念 の た め ア セン ブル し た ソー スリ スト と ダン プリ スト 
を リス ト 3-14 に 蔽 せ て お きま す 。 


國 画面 転送 プロ グラ ム の 実際 


これ まで 述べ た こと を ベース に プロ グラ ム を 組み , これ を スケ ッ チ ボー ド プ ログ ラム (リス 
ト 3-8) に 合体 る きせ た の が リス ト 3-15 で す 。 9000 行 以降 が V-RAM コピ ー の サブ ルー チン で , 
9060-9140 行 が ディ スク へ の 書き 込み 用 , 9160-9250 行 が 読み 込み と 描画 ルー チン で す 。 この 
サ プ ブルー チン は 。380 行 , 90 行 と セッ ト に な っ て いま す 。 自分 で 作っ た プロ グラ ム に 。』 こ の サブ 
PLD 80 押 118F EE 人 2 0 

し て 活用 し て くだ さい 。 

な お , マシ ン 語 は 9270 行 , 9280 行 に DATA と し て 格納 し て いま す 。RUN する と 90 行 の 
READ 文 で この デー ク を 読み , POKE 文 て 直接 メモ リー に 書き 込み ます 。 ま た , マ シン 語 プ 
ログ ラム は &H6B00 番地 以降 に 展開 し て いま す の で , CLEAR 文 で ユー ザー エリ ア を 制限 し 
て お か ね ば な り ま せん (80 行 )。 

リス ト 3-15 は 。 リス ト 3-8 の スケ ッ チ ボー ド プ ログ ラム の 内 容 と 同じ で す が , メニ ュー に 
(7=VRAM S/L) を 追加 し ま 2 メニ ュー で 7 を 選 全 と SAVE か LOAD か 聞い て きま す 。 
入力 後 , ファ イル 名 を 入れ る と 画面 の 転送 を 開始 し ます 。 な お , メモ リー の 関係 で スケ ッ チ ボ ポ 
ー ド 2 て 作画 で きる ステ ッ プ 数 は 2000 まで と な り ま す 。 


フロ ッ ピ ー 頒 布 サ ービス 
正確 に 入力 する 自信 の な い 方 や , 入力 する 時 間 の な い 多 忙 な 方 の た 


め に , 本 書 収載 の 全 プ ログ ラム を フロ ッッ ピー ディスク に 収録 し て 頒 
布 し て お り ま す 。 詳細 は 目次 前 に あり ます の で , ご 覧 の うえ お 申し 
込み くだ さい 。 


(リス ト 3-15 スケ ッ チ ポ ー ド プロ グラ ム 2) 


paQE ! 


9 CLEAR6@9 。&H6RFF:DIN EX(120) 

9 の FUR 1= の TU 17:READ PD:PUEE &H6B ロ 4+T 。PD: NEXT 

1 WIDTH Bg,25: EDNSDLE9 , 22: DIM PICX(2 ロ の) 。PICY (2 ウロ) 
11 の LINE( の ,9) -(639,175) ,PSET ,7 。B 

129 BUSUB 719:LUCATE 9。2 さ :UN ERRDR BOTO 165 

1 ミ の PRINT"1=LINE 2=PQINT 3=ERUSH 4=CIRCLE" 
149 PRINT" =SAVE 6=LUAD 7=VRAM S/L =END "=:INPUT A 
15 の IF = の THEN MIDTHB ヨ の: END 

16 UN Q BUSUB 179,3 さ の ,49 の ,619。1 さ ヨロ 。 19 の 9 。99 の 9: BUTU 12 
165 BEEP: CLOSE: RESUME 120 

17 区 共著 区 基 し LTNE ま テ 共 区 基 

189 BUSUB 71g:LUCATE の ,2 さ : INPUT" セ フフ イロ "s ビ 

199 PRINT" り の "カル =CURSUR KEY+RETURN KEY": 

2 の PRINT" オォ オ ワ ル =RETUEN KEY+RETURN KEY": 

219 GCURSUR ( さ 29 5) , (2。Y2) 。C 

22 の PSET(X2。Y2, じ ) 

239 PICX (PCD) =1999:PICY (PCO) =C: PC0H=PC ロ + 1 

249 PICX (PCU) =X2:PICY (PCO ) = ニ Y2: PCD=PCU+ 1 

25 の 9 FUR T=g TO 1g: 人 Q$=INKEY* 

26 IF $=CHR$ も (1 る) THEN RETURN 

279 NEXT 

2 X1=X2:Y1=Y2 

299 BCURSUR(X1 。Y1) 。 (X2。Y2) 。C 

3g9 LINE(X1 。Y1)-(X2。Y2) 。PSET 。 ビ 

319 PICX(PCO) =X2:PICY (PCO) =Y2: PCD=PCD+ 1 

32g BUTD 259 

うう 婦 本 エメ エエ テテ そそ テマ そ ュ PAINT E 支 : 支 支 支 茎 支 支 . 支 支 . る 

34 の 9 GUSUB 719:LUCATE 9。23 

35 の 9 INPUT "ヌル イロ =" ェ じ :KC= ロ 

ュ 69 に KC=KP+1:LUCATE 。23 

さ 79 PRINT "キョ ウ カ イ ショ フ " ェ KCs : INPUT KC も 

389 IF KC を ="" UR KC=B THEN 4 の 

399 K(EC) =VaL (KC も を ) : GBDTU 36g 

4 の FUR J=KC TU 7: に (J)= じ (KCー1 ) : NEXT 

419 GCURSUR ( さ 2g ,85) 。(X 。Y) 。C 
429 PAINT(X,Y) ,C,K(1) 。K(2) 。K() 」 に (4) に ( 王 ) 。 に (6) 。 に ( フ ) 
43 の 9 PICX (PCO) =2999:PICY (PCO) =C: PCEU=PCU+ 1 


5408 7 
44 の 
45 の 
46 の 
47 の 
4 の 
49 の 
5 の の 
っ 1 
2 の 
コラ の 
ら 4 の 
ココ の 
ら 6 の 
コノ の 
58 の 
うら 9 の 
6 の の 
61 の 
ら 2 の 
6 さ の 
ら 4 の 
65 の g 
ら 66 の の 
67@ の 
68 の 
69@g 
7 の の 
71g 
72 

73g 
74 の g 
1 の 9 の 
1 の 1 
192 の g 
1 の 3 の 
1g ウ 4 
1 の 5 の g 
1 96g 
197 の 


PTICX (PCD) = じ ( 1 ) 
FDR コ =2 TU 7 ア : じ も =KTGBHT 多 (TK も ( じ (J) ) 。 1 ) 

に じゃ = ビビ キビ = NEXT: ピ TICY (PC ) = ニ VaL (に じ ま も ) 
PCD=PC ロ + ィ 1 : KETURN 

/ 基 基 秦 基 基 牙 基 天 HKUOGH 区 区 区 牙 基 基 基 区 基 基 

BODSUB アフ 1 の :LUCATE ,2 ラ 

INPUT "ファ ラシー ノ イロ =" ェ sC 

GCURSDR (2 85) 。 (X1 。Y1) 。 (X2。Y2) 。 ビ 

FDR =X1 TU X2 STEP SGN(X2ーX1 ) 

P=ABS (Y1-Y2) : FURK IT=g TO P/5 

IF Y1>Y2 THEN Y=Y2 ELSE Y=Y1 

PSET (B。RND*P+Y , じ ) : NEXT 1。B 

PTICX (PC ) = うろ の 9 の: PTCY (PCD ) = じ : PC ロ =PCU+ 1 

FICX (PCO) =X 1 : PTCY (PCD) = ニ Y1 : PC ロニ FCD+ 1 

PTCX (PCO) =X2:PICY (PCO) = ニ Y2 : PF ロ =PCO+ 1 

RKETURN 

エエ テー そそ テ そ テ テコ じ TIRKC じ LE 区区 基 革 区 天天 基 基 天天 基 

GOSUB アフ 1g:LOCPATE の 。2 ラ 

INPUT "エー ノー イロ = リュ ビビ: LUCATE g。2 さ 

PR TNT"+ ヲ ウ コ " カ シ チュ ウシ ン ト リフ ケイ ヲ セット シテ フグ "サイ " ェ 
GCURSUR ( ミ 29 5) 。 (CX 。CY) 。 (HX 。HY) 。 ビ 

CIRCLE (CX ,EY) , BS (CXーHX ) 。 ビ 

PTCX (PCO) =4 の 9 の 9: ビ ITCY (PCD ) = じ : PCD= ニ PCU+ 1 

PICX (PCO) =CX:PTCY (PCD ) =CY : PCD=PCD+ 1 

PICX (PCD) =AES (CXーHX ) : PC ロ =PCD+ 1 

RETURN 

*ーーーーーーーーー カラ ー チャ ー ト ーーーーーーーーーーーー 

LUCATE の 。22:PRINT" の  "::=FUR =1 TU 7 
COLOR C+ ヨ :PFRTNT じ :i "本 較 ": =:NEXT じ :CULURK7 

PR INT"LSTEP" = PCOi "1":PRINTSPACE も (159) = : RETURN 
本 エエ エズ テ エ テ エ エエ そ テテ そそ テテ そそ エコ PP LOURAD 区 区 区 天天 基 区 天天 基 基 基 基 基 基 天天 
INPUT"FILE NAME "=N$ を 

PCH= の : FEN" T" 。 提 1 。N も =: TNPUT 后 1 。PCL 

FOR PL=g TU FCL 

INPUT##1 。PICX (PL ) : INPUT#1 。PTCY (PL ) 

NEX 丁 : PTCX (PCL ) =9999 : CLUSE#1 

CLS= し INE (d。 の ) 一 (6 さ 9 175) ,PSET 7 ,B 

IF PTICX(PCD) =9999 THEN RETURN 


69 


70 3 章 実践 プロ グラ ミン グ 


IF PICX(PCU)=1 の 9 の THEN C=PICY (PCOU) : GHSGUE 
IF PICX(PCO) =2 の 9 の 99 THEN C=FICY (PCO) : GUSUBE 
IF PICX(PCH)=3 の 9 THEN C=FICY (PCH) : GUSUE 
IF PICX(PCU)=49@9 THEN = ビ PTICY (PCO) : GUSUBE 
PCU=PCO+ 1 : BUT 有 H 17 の 


PCU=PCD+1: IF PICX(PCO+ 1 ) >=1 の 9 THEN 118 の 
X1=PICX (PCO) : Y1=PICY (PCO) 

X2=PICX (FCD+1 ) : Y2=PTCY (PCO+1 ) 

LINE(X1 。Y1) -(X2,Y2) 。PSET 。 じ : GDTU 1149 
PSET (PICX (PCO) FICY (FCO) 。C) : RETURN 


X=PICX (PCU+1 ) : Y=PICY (PCO+ 1 ) 

に (1)=FICX (FCO+2) :FUR J=2 TO 7 

K(J) =VaL (MTD ま (STRK ま (FICY (PC ロ + ら ) ) 。J 。1 ) ) :NEXT J 
PAINT(X。Y) 。C。K(1) 。K(2) 。K( さ ) 。K(4) 。K( 号 ) 。 に (6) 。K(7) 
PC ロ =PCU+2: RETURN 


X1=PICX (PCO+1 ) = Y1= ニ PTCY (PCO+1 ) 

X セ = ニ PTCX (PCUT2) =: Y2 ニ FICY (PCH+2) 

FUR B=X1 TU X2 GTEP SGBN(X つ ー メ X1 ) 
P=AEG(Y1-Y2) :FUR 1= ウ T P/55 

ITF Yi:Y2 THEN Y=Y2 ELSE Y=Y1 

PSET (B ,RNDxP+Y 。 じ ) : NEXT 1.。E 

PC ロ =PCU+2: RETURN 

CIRCLE 

X1=PICX (FCOU+1 ) = Y1= ニ FICY(PCOT 1 ) 

X2=PICX (PCD+2 ) 

CIRCLE(X1 。Y1 ) 。X2。 ビ 

PC0U=PCU+2: RETURN 

本 エメ エメ エエ エエ メメ エエ マテ 3 還 つ =f^9 コ 症 エエ キテ テキ テキ テキ テテ キネ テテ テテ: 
INPUT "FILE NAME "<N ま 
OPEN"O" 。 守 1 。N も :PRINT 拉 1 。PCO 

FUR PL= の TH PCO 

PRKINT#1 。PICX (PL ) : PRKINT 持 1 。PTCY (PL ) 

NEXT: CLUSE# 1 : KETURN 

FOUR 1= の 9 TO FCUzPRINTPICX (1) 。PICY(1I ) : NEXT 
"区 閉 牙 区 区 基 基 基 区 区 ええ 区 区 ソーRAN CUPY GUH 光 寺 区 区 区 区 区 区 区 区 区 区区 芝 
INPUT "ビーSAVE=1 ビーLUQD=2 つ " ュ SL 


pagg 4 {( File Namg : SKETCH } 


9 の う の DI も 5 じじ E 和 (240 ) 

9 の 4 の IF GL=2 THEN 15 の 

の の の “ニニ ニニ ニニ デニ デニ デニ ニニ デデデ ニニ デー ロ らら I 人 ZiW ニー ニニ ニジニ ニニ ニニ デニ デデデ ジー 三 三 
9 の 6 の IMNPUT "SAVE/FILE NaIE "FIN も 

9 の 7 の UPEN" OU 。 鶴 1 。FTN 多 

9 の 8 の FOUR Y= の TOU 1755 

999 の GET@n( の 。Y) 一 (639。Y) ,EZ。B 

91 の の POEE 多 H6B の の 。 ソ ARPTR (E ん (の ) ) 半 256 

91 1 の POUEE を H6B の 1 , ソ ARKPTRK (EZ ん (の ) ) IOD 256 

912 の の POEKE HoB の 2 。PEE に (VaKPTR【(DM も ) +1 ) 

91 う 3 の POUEE を H6B の 3 PEE に (VaRPTR(DM も ) +2) 

914 の の EXEC&H6E ウ 4: PRKTINT 提 1 DI も ョ NEXT Y:CLUGE 失 1 : KETURKN 
ワ 915 の “ニニ ニニ ニニ ニー ニニ ニニ ニニ ニニ テー テー L けけ 介 DD ニニ ニニ ニニ ニニ テニ ニニ ニニ ニニ ニニ ニー 
916 の INPUT"LDAD/FTLE NaME "』FIN も 

917 の OPEN"1" 。 拉 1 。FIN$ 

91 ヨ 8 の FOUR Y= の の TO 117: DFI4 も = 了 NPUT 生 (24 の 。 井 1 ) 

919 の 9 POUEE &H6B の 2 , VaRKPTR (EZ( ウ ) ) 学 256 

929 の POEE H6BB3。 VAKPTR (EZ (の ) ) MUD 256 

921 の POUEE HH6B の の 。PEEE に (VARPTR (DIM 和 ) 1 ) 

922 の POUEE 系 H6Bg1 。PEEEF (VaEPTR (DIM 多 ) オク ) 

92 う の EXECH6B の 4 

7924 ウ PUTG@R(g。Y) 一 (639 。Y) 。E ん PSET =: NEXT Y: CLOSGE#1 

25 の RETURKN 

ワ つ 6 の ニニ ニニ ニニ ニニ ニニ ニニ ニテ テテ MACHINE DATA ニニ ニニ ニニ ニニ ニニ ニニ ニニ ニー 
92 フ 7 の DATA 198」24 の ,19 の 9,1 の 7, の ,16。19 の 。1 の 7。2。166 

928 DATA 128,167。169,192。1 , さ B。24 日 。57 


余暇 利用 の 協力 者 を 求む 
(パソ コン 用 の フロ グラ ム を 組む 仕事 を 勅 業 と し て 4 年 以上 経験 し て いる 方 
の 余 忠 利用 で 在宅 の 仕事 て す が , 時 間 に 比 較 的 余裕 の ある 方 
3 ビジ ネス ・ ユ ー テ ィ リ ティ ・ ゲ ー ム ・ マ シン 語 ・ そ の 他 の いずれ か の プロ グラ ミン グ に 自信 の あ 
る 方 
4 希望 者 は 下記 事項 を 書面 (メモ 程度 で 可 ) で お 知ら せ 下 さい (応募 の 秘密 は 大 守 し ます ) 
の 侍 所 ・ 氏 名 ・ 年 秋 ・ 自 宅 電話 番号 
避 現 在 の 勤務 先 ・ 華 種 
プログ ラム (また は コン ピュ ー タ ) に 関す る 職歴 お よび これ まで に 組ん だ プロ グラ ム 名 
所 有 シ ステ ム ・ あ な た の 使用 で きる 言語 の 種類 (詳細 に )・ 協 力 て きる 大 よそ の 月 間 時 間 
5 郵送 先 : 113 東京 都 文 京 区 本 卿 5ー5 一 1I8 山海 営 舞 集 部 及川 宛 


こさ る へ や や や や が 
NN My 


グラ フィ ックス 


いよ いよ ょ ダイナミック な 3 次 元 グ ラフ ィ ッ クス の 世界 へ 踏み 込み ます 


ご /- に 】 


////////// ツ 


前 章 の 絵 を 描く ブロ グラ ム で は , 与え られ た デー タ に 従っ て 画面 に 絵 を 描く いわ ば 静 ” の 


… ー 


図形 処理 で し た が 本章 で は , ある 一 連 の デー タ を 加工 し , さま ざま な 角度 や 大 き さ の 図形 を 


描か せる い 動 ′ の グラ フィ ッ ク に つい て 述べ て み ま す 


3 o 


| 画面 座標 系 と 原 座標 系 | 


画面 座標 と は 640X200 ドッ ト の 座標 の こと を いい , 原 座標 は 数 学 に お ける 一 般 的 な 座標 を 指 
レレ ます 。 


( 図 4-1) 


また 原 座標 を ワー ルド 座標 と も 呼び ます が , 本 書 で は 便宜 上 , 原 座標 の 呼び 方 で 統一 し ます 。 


瑞 面 座 棟 は 周知 の 通 ? EE 白 kk ハ の 佑 1) 一定 上 - イ ー e ーー ーー ーー ュ ュ 
画面 座標 は 周知 の 通り , 垂直 座標 (Y) の 値 と し て 画面 上 端 が 0 , 下端 が 199 に 固定 され て お 


/3 


り ま す 。 また, 水平 座標 値 (X) と の 画面 比率 も 1 対 1 に な っ て いま せん 。 前 章 の いわ ば 静 的 な 
グラ フィ ッ ク の 実行 で は , この 座標 系 で も 特に 支障 は な か っ た の で す が , 動 的 な 図形 処理 を 行 
な う 場 合 に は , いろ ら ろ と 不都合 が 生じ て きま す 。 一 般 に 座標 を 考え る と き は , メニ 0, Y=0 の 


図形 の 移動 や 拡大 ・ 縮 小 ま た は 回 転 な どの 負 理 は , 架空 の 原 座標 系 内 で 行ない , 実際 に 描か 


せる 時 点 て 座標 の 変換 を 行 な ら 。 画 面 座標 へ 出力 し ます 。 


原 座標 系 の 座標 値 を 640Z200 ドッ ト の 画面 族 棲 に 変換 ナ する ため に は , 次 式 を 用 いま す 。 


画面 座標 X= 原 座標 ィ +320 tr…t ① 
画面 座標 Y=100 一 原 座標 カメ 0.4499 … ② 
この 式 に よっ て 原 座標 の 原点 (r=0。 ヵ =0) は , 画面 座標 の 中 央 (320,100) の 位置 に セッ ト さ 


れ ま す 。 ヶ ヵ 座標 に 0.4495 を 掛け て いる の は , 原 座標 の 縦横 比 1 対 1 と , 画面 座標 の 縦横 比 1 対 
0.4495 の 調整 を 行なっ て いま す 。 こ の 調整 を し な ぃ と, 描画 する 図形 は 元 の 図 に 比べ 縦 に 伸 ば 


され た 表示 に な っ て し まい ます 。 


(320, 100) 


(639, 199) 


[- y] 
( 図 4-2 原 座標 と 画面 座標 の 変換 ) 


74 4 章 3 次 元 グ ラフ ィ ッ クス 


トウ 
守 
し 3 
S 
| 
KN 
較 


原 座 標 系 内 の 図形 を 左右 に 移動 さき せる と き は , xr 座標 に 移動 量 を 加え ます 。 上下 に 動か す 場 
合 は , 同様 に ヵ 座 標 に 移動 量 を 加え ます 。 


移動 後 の += 移 動 前 の ++ 移 動 量 ……… 左右 の 移動 
移動 後 の 7= 移 動 前 の ヵ 寺 移 動 量 ……… ト 下 の 移動 


具体 的 な 例 と し て 原 座標 系 内 で 図形 を 移動 し た の ち , 画面 座標 に 変換 し 描画 させ る 過 得 を 
追っ て み ま し ょ う 。 

図 4.3 の ① を 元 の 図形 と し 右 に 50、 下 に 25 移動 きせ ます 。P1 一 P3 は 移動 前 の 座標 値 。Q1 
て Q3 は 移動 後 の 座標 値 。R1-R3 は 座標 変換 後 の 座 標 値 で す 


図 』-3 の 処理 を 通し て 得 られ た RIX~R3X お よび RIY~R3Y の 各 座標 値 を LINE また は 
CONNECT で 結ぶ と , 移動 し た 三角 形 が 描画 で きま す 。 


CONNECT (R1X,R1Y) -- (R2X, R2Y) - (R3X, R3Y) 一 (R1X, R1Y) 


人 ビジ ネス マン の た め の 山海 堂 発行 


バ パソ コン 人 入門 術 


シス テム 科学 研究 所 編 /B5 変 形 210 真 1500 円 


現代 は ニュ ー メ ディ ア の 時 代 。 情 報 化 社会 …… と 呼ば れる 新しい 時 代 に 移行 し つつ あ 
す 。 こ の ニュ ー エ イジ に 生き る ビジ ネス マン が 最 ち 強い 関心 を 持っ て い * ろ ちの の 
人 人 わり ほ 5 じ か = ボ 選 40 ま 『 で は 。 パソ コン ィ 、 の 対応 に 問 違 い は な か 

? 対 記 の 仕方 に は , お か れ た 立場 に より , 人 それ ぞ れ に 違い が あっ 
・ この 本 は 新しい 視点 に 立っ て , 人 それ ぞ れ の の 対応 の 仕方 
ら 手 が か り を 与え て くれ る で し ょ う 。 
ミソ コン に 取り 組む た め の 新 し い 発想 @10 語 で ルン ルン プロ グラ ミン グ 
ご 4 組み と 働 ほ @ お りな 周辺 機 只 の ほな 2 
すす む 0A と メカ トロ ニク ス @ に ニー ミニ 用 器 必 で 
@ パ ソコ ン を 操作 する に は 


Z5 


上 右 に 50 の 移動 は ァ に 50 を 加算 
下 に 25 の 移動 は ヵ に 25 を 減算 


( 原 座標 ) 


01 ァ =P1r +50 
01 ヵ = ニ P1 ヵ ー25 


02 ァ = ニ P2r 十 50 


Q1r=50 
0Q1 ヵ =25 


02 ァ =100 


02 ヵ 7 ニ P2 ヵ 一 25 0Q27= ニ ー75 


02 テ 7= ニ P3r+50 03 テテ 0 
03 ヵ = ニ P3 ヵ 一 25 …. Q3 ヵ ニー 


計 に 前 32 


RIY 1 0.4495 


R2X=02 テ 320 
R2Y=100 一 027* 0.4495 


R3X=Q3r-320 
R3Y=100 一 03 ヵ * 0.4495 


x 三 320 x 三 420 
R3 1》 =133 y 三 133 


( 図 4-3 座標 の 移動 と 変換 過程 


76 4 章 3 次 元 グ ラフ ィ ッ クス 


| 2 次 元 図形 の 拡大 お よび 縮小 | 


拡大 は + と 7 に 1 以上 の 倍率 を 掛け , 縮小 は 0 以上 1 未満 の 倍率 を 掛け ます 。 
拡大 また は 縮小 後 の 座標 値 を *。 / と する と , 


が ニダ % 僧 率 


の ニル ※ 倍 率 


と な り ま す 。 図 4-4 は 拡大 率 を 1.5 に し た と き の 例 で す 


「 Q1r=Plr X1. ・Q17 ニ P17※1. 
) Q2x=P2rx1.5 : Q27 ニ P27※1. 
Q3 テ = ミ P3rx1.5 : 037=P37※1. 


| 図形 の 回 転 | 

ん どう に な り ま す 。 三角 関数 の SIN, COS が 
きま す の で , 数 学 ア レル ギー が で て くる 方 も いる か も し れ ま せん 。 し か し , SIN, COS 
は 高度 な グラ フィ ッ ク を 実行 する うえ で と て も 便利 な 関数 で す 。 知 識 が あい まい な と き は ,。 三 


角 関 数 の 概念 だ け で も お きらい を し て お く と 心強く な る と 思 ら ます 。 ま た 。 SIN,。 COS が 自由 


ZZ 


自在 に 操 つ れ な けれ げ ば グラ フィ ッ ク が で き な い と 早合点 され て も 困り ます 。 本書 で 述べ る 式 を 
測 な る 公式 と し て ,。 用 途 に 応じ それ ぞ れ 使い 分 け て くだ さい 。 


回 転 後 の 座標 は 次 式 で 求め ます 。 


ァ ー テ ァ ン COS の エル カン SIN 
7 ニー テン SIN の + ヵ ッ ン COS の 


* お よび が は 回 転 後 の 座標 値 で す 。 の な は 回 転 角度 を 与え を ます が , ラジ アン の 値 を 入れ な けれ 
ば な り ま せん 。 日 常 私 た ち が 使 う 角 度 の 単位 は 度 (”) が 普通 で て, ラジ アン は な じみ が あり ませ 


エ ろ 
c お きま II アド ノ 。 


ん 。 度 (") を ラジ アン に 変換 する 式 を 挙げ 
ラジ アン = 度 ( ) >3.14159 そ 180 


ラジ アン を 求め る に は 上 式 の 度 の と ころ に 角度 を 代入 し ます 。 た と えば , 90' を ラジ アン に 直す 
場合 は , 度 の と ころ に 90 と 代入 し て 


三 90X3.14159/ 180 


od 
N 
WS 


ラジ アン =1.57 
と な まず 。 
数 学 で は 。 度 (") を DEGREE (ディ グリ ー) と も いい ます 。 ま た 角度 を 表わす 単位 に は 
RADIAN (ラジ アン [rad]) の 他 に GRAD (グラ ー ド 【[ 外 ) と いう の も あり ます 。 こ れ ら の 関 
係 は 


90'=100? ニ ァ +2 [rad] 


少し 横道 に それ た が , 図 4-5 に 図形 を 90' 回 転 き せ た 実 例 を 載せ て お きま す 。 回 転 さ せ 


ココ 
し ま 【! 
る 角度 を いろ いろ 変え て 図形 の 変化 を 確認 し て くだ さい 。 


78 4 章 。 3 次 元 グ ラフ ィ ッ クス ーーーーーーーーーーーーーーーーーーーーーーーーー 一 一 


Q1r=Plr* COS (1.57 ) 上 P17* SIN (1.37) SS (GHZ ご 50 
| 0Q12 ゥ ニーPlr* SIN (1.57 ) 士 P17* COS (1.57) … Q17 王 0 


| 

| Q2r=P2r* COS (1.57) 十 P2 ヶ * SIN (1.57) … Q2x=ー50 
| 027 ニーP2r* SIN (1.57) 十 P27* COS (1.57) … Q27 ミ ー50 
| Q3rx=P3r* COS (1.57 )+P3 ヶ * SIN (1.57) 。 … Q3x ニ ー50 
-Q37? ニ ーP3r*SIN (1.57)+P37* COS (1.57) … Q3z 王 50 


原 座標 系 で の 拡大 ・ 縮 小 ・ 回 転 は 前 節 の 図 43-1 お よび 


4-5 で 実例 を 述べ まし た が , 画面 に 出 
力 す る と き は 図 4-3 と 同様 に 画面 座標 に 変換 し て か ら 描 画 き せま す 。 変 換 し た 座標 の 値 が 
0<X<639,。 0<Y<199 の 範囲 な ら ば 問題 は な い の で す が , 拡大 に 伴っ て この 範囲 を 超え 


| 
| 
tee| 
リン 
(の 
テー 
〇 
① 
* て 
は ばい 
1 
て 
ピ 
と 
ey| 
考 
PWM 
1 
に 
AH 
Qt 
Ju 
どう 
ポー 
SR 
HI 
* ン 
(c 
+ ン 
wt 
N) 
を 
Im 
に 
ら 
1 
0 
RW 
いさ 
(C 
H 
NT 


り 。X>640, Y>200 の 時 は 正しい 表示 に な り ま せん 


クリ ッ ピ ング と は 。 画 面 か ら 溢 れ て し まっ た 線 を 適切 な と ころ で 切る 働き を いい ます 。 


( 図 4-6 クリ ッ ピ ング ) 


クリ ッ ピ ング の 条件 。 | 


画面 を 横切る 線 は 無数 に 存在 し ます が , 図 4-7 を 例 に 線 分 AB の クリ ッ プ に つい て 考え て み 


な こく 


yt 


89 記 


0 639 


( 図 4-7 クリ ッ ピ ング の 条件 ) 


1) ① の 線 分 は 、A 点 B 点 と も 画面 内 で す の で , クリ ッ ピ ング の 処理 は 必要 な く , その まま 
描画 で きま す 。 
(2) ② の 線 分 は A 点 が 画面 外 な の で クリ ッ プ し な けれ ば な り ま せん 。 
(3) ③ の 線 分 は A 点 B 点 両方 の X 値 が 640 を 超え て いま す の で 描画 
(4) お よび ③⑨⑤ の 線 分 は A 点 B 点 と る 画面 外 で す が 。 画面 を 横切る 場 


が あり ます 。 


Ni 


80 4 章 3 次 元 グ ラフ ィ ッ クス 


線 分 AB が 画面 内 の ① を 満足 させ る 条件 は , 
AX>0 AND AX<639 AND AY>0 AND AY<l99 AND 
BX>0 AND BX<639 AND BY>0 AND BY<199 
が 真 に な り ま す 。AX は A 点 の 水平 座標 で 、AY は A 点 の 垂直 座標 で す 。 
線 分 AB が 完全 に 画面 外 と な る ③ の 条件 は 。 
(AXN<0 AND BX<0) OR (AX>639 AND BN>639) OR 
(AY<0 AND BY<0) OR (AY>199 AND BY>199) 
を 満足 し ます 。 
さて , 前 記 2 つの 条件 式 の 結果 が ,。 虚 で ある な ら ば ②④⑤ の どれ か に あて は まり , クリ ッ ピ 


ング の 処理 を し な けれ ば な り ま せん 。 図 4-8 の 線 分 AB を 例 に と り 説明 し ます 。 


(0.0) (639.0) 


クリ ッ フ ボイン ト 


(0, 199) (639, 199) 


クリ ッ プ ポイ ント CP の 座標 が わか れ ば , 画面 内 の B 点 と CP を 結び 。 ク リップ され た 線 


を 引く こと が で きま す 。CP の XX 値 は 画面 左端 で ある こと か ら , 0 で ある こと が わか り ま す 。 


だ 晶 [ ン エ と こそ で ー きま ーー アプ : ャ ン し デア 五 「 全 ヒ ー デ 
不明 な の は CP の Y 値 で す が , これ は 三角 形 の 比 で 求め ある こと が 可能 で 3 
A 1 *DY * ヽ 

BX ーー ウッ PX 一 和え) 一 人 ら PY ) 
レー チラ と っ 2 
ン ン ンー 。 一 プ プ ン 
< BY リン 2 
av レ A % 


LINE(BX,BY)-(CPX,CPY), PSET 
と 2 戸 間 を 結べ ば , クリ ッ プ され た 線 を 引く こと が で きま す 。 

上 本 的 な クリ ッ ピ ング の 負 理 は 以上 で す が , 図 4-7 の の の よう に 両端 に また が る 線 分 の 場合 
は 片側 ずつ 行ない ます 。 また ⑤ の と き は , CPY が 画面 外 (CPY>200) に な り ま す の て 描画 の 


必要 は な く な り ま す 。( 図 4-9) 


負 理 前 片側 を クリ ッ プ 


両方 を クリ ッ プ し て 終了 


( 図 4-9 クリ ッ ピ ング の 手 喘 


F-BASIC に VIEW や WINDOW の 命令 が 


あれ ば 。 も っ と 簡単 な 処理 で すむ の で す が , 無 
いも の ね だ り を し て も 始ま り ま せん 。 

BASIC の 藻 令 が 無い の で あれ ば 、 同 等 の 機能 を 有する ルー チン を 作っ て し まう の も プロ グ 
ラミ ング の 楽し み と い えま す 。 こ れ ま で に 述べ た 処理 法 に 手 を 加え る と 。 VIEW や WINDOW 
の サブ ルー チン が で きま す の で , 力 の ある 方 は 挑戦 し て みて くだ さ 

で ン に "一 
図形 加工 の サン プル プロ グラ ム 

リス ト 4-1 は 図形 の 移動 ・ 拡 大 ・ 縮 小 ・ 回 転 ・ ッ ピ ング を 実行 する サ 

が ソル キ ォ すし と 図 } は 矢 ) か y てい 


82 4』 意 3 次 元 グ ラフ ィ ッ クス 


(リス ト 4-1) 


" 面 還 コケ イー フー イト 貞 ・ 力 29 イェ シュ フミ ヨウ ・ カ イ テ フ ※ (C) 己 .Ta})ima 原 記 


DIN X(1g) ,Y(19 ウ ) : CLS:M=1 : エニ 1:DN ERRUR GUTU 29g 

1 さ の READ X:IF X=9999 THEN =4:GHSUE さ 99:GOUTU 2 

149 READ Y:X(1)=X:Y(I)=Y: 1 エ =1+1 : GHTU 1 さ の 

1 DAT 94@。4 の 9。-1 の 9 の 。4g。-19,25。-45。25 。ー455 。 1 。 
ュー 。ー45 。- さ の 


16g DaTR -6g。- さ の 。-69 。 49 1 の の.49.15。49 」 こ コ 。 さ 9。 4 。7 の 9 。 4 の 。7 の 。 


ー2 。 1 。ー2 。 一 王 。 一 4 


5 9 ー マ 
の 、55。- さ 。55 7 
17 加 DaTQ さ コ 。- さ の 15, 7 。15。ー3 の の ー ラ ロウ 。 の.。49 


DaTA 9999 


MHILE に まく CHR ま (1 さ ) : 思 も ニ INEEY 和 中 
21 IF ド に も =CHR ま (2B) THEN CLS: QRX= ニ AX+4g: GUSUB さ @@ 
22 :F に まま =CHR ま (29) THEN CLS: RX ニ QRXー4 の 9: GUSUE さ の 9 
2 さ 還 IF ド ま =CHRK も ( ミ ) THEN CLS: RY=QAY+29: GUSUE さ @ の 
2 っ 4 TF に も =CHR ま ( さ 1 ) THEN CLG ょ QAY= ニ QRY-2 の CSUBE さ の 中 
259 IF に 和 ま = リ + リ "THEN CLG: MM+ 5: GUHSUE 3 の 

So ITFFE ま = リー リ "THEN CLS: MM ニー.: GUSUB さ の 9 

27@ 【FE 和 まり "THEN CLS: ビ ビニ に ビ + スワ 2 アミ GOHSUE この の 

<B MEND: END 

RESUNE NEXT 


さ 1g@ LINE(d。g) (639 。199) 。PSET 。 1 。B:FUR J=1 TO エー-1 
ミ 2@ IF X(J) >=5g THEN 449 

ささ TF X(』ー1 ) >= ニ 5 THEN LX1=X(Jー1 ) 一 1 の 92 の ELSE LX1 ニ =X( ゴ ー1 ) 

349 LX2=X (J) 

35g X1=LX1*CUS(E)+Y (コー1 ) *GTN(E) :Y1= ニ ーLX1xGTN(E) +Y (ゴー1 ) *CHS (に ) 
さ 6 の X2=X(J) *CHS(E) +Y (J) *SIN(K) =: Y2 ニ ーX (J) * 己 IN(E)+Y ( け ) *COHS (に ) 

さ 7 ウ X1=X1 テ MTAX+ さ 2 ウェ Y1=1 の ロー(Y1*M+AY ) * . 449 

5B の X2=X2*M+ 仙 X+ コ フロ ェ マニ 1 ウー(Y2xM+AY ) *. 4495 


1 と AND X1<63 ヨ 8 QRND Y1> の AND Y1<198 AND X2> ウ の AND X ぞ くら 6 
さ ロ AND YS AND Y2<198 THEN 43@g 

41 の 1F (X1< の aND X2<g) OR (X1>63 ヨ QRND X2>638) OR (Y1 く < の aHD Y 
2<) OUFE (YY1:198 aND YS2:198) THEN 449@ 

42g GODSUB 469:GMUAFP X メ 1 .X2:5MAF 1 。Y セ GO0GUE 46 

439 LENE(X1。 Y1) 一 (X2。Y2) 。 に に 

NEXT: RETURN 


メメ ニ メ 2 

7F メン ニ メ 1 THEN イイ ニ Y ダ GUTOU 51 の 
YY イニ イジ ー (イー ザイ 1 ) メ ( メ クー メ X) / (メーX 1 ) 
IF YY7<1 THEHN YY=1: GUT0D 54 の 


1 ビー YY アテ 19 ヨ THEN YY=198: BUTOU 4 の 

メニ メア ュ イ クニ イイ > GUTU 6 の 

IF マフ = ニ Y1 THEN メメ ニ メ Xs GUTU 3 

メメ ニー ニ メ マー( メ ター メ 1 ) ※ (ソー ザヤ) / (Y ア ジーY1 ) : BUTU 3 の 
RETURRN 


小 で す 。 回 転 は し に] キー で 行ない ます が , 一度 に 回 転 で きる 角度 は 22.5 度 に セッ ト し て あり ます 。 
プロ グラ ム の 実行 を 終わ らら せる と き は リク ー ン キー を 空 打 ち し ます 。 

図 肛 の モデ ル は アル ファ ベッ ト の “FM の 文字 を 形 ど っ て お り , その デー タ は 150180 行 
の DATA 文 に 格納 し て いま す 。 ま た デー クタ は 双 。 Y の 順 で 並ん で お り , 描き 始め を 区 別 する 
た め に X 座標 に 1000 を 加え て あり ます 。 デ ー ク の 終わ り は 9999 で 区 別して いま す 。 

(100 一 180 行 ) 図形 の デー タク と デー タク の 読み 込み 。 

(200 一 280 行 ) 左右 の 移動 (210, 220 行 ), 上 下 の 移 動 (230, 240 行 ), 拡大 (250 行 ), 縮 

小 (260 行 )、 回転 (270 行 ) の 選 

(310 一 380 行 ) 回 転 と 座標 決定 ルー チン 。 


(400 て 560 行 ) クリ ッ ピ ング と 描画 の サブルーチン 。 


この プロ グラ ム で 特に 重要 な と ころ は 


CO 


370 行 と 380 行 で す 。 XX1。Y1, X2, Y2 は クリ ッ プ 前 
の 決定 座標 値 で す が , 図形 の 加工 や 原 座標 か ら 画面 座標 の 変換 を 行なっ て いま す 。 変 数 M は 抜 
大 率 。 AX は 左右 の 移動 量 、AY は 上 下 の 移 動 量 で す 。 この 行 で 決ま っ た 座標 値 を 次 行か ら 
クリ ッ ピ ング ルー チン に 通し , 430 行 の LINE 文 で 描画 きせ て いま す 。 
リス ト 4-2 は カセ ッ ト ハ ー フ の 図形 


) 


ー タ で す 。 リ スト 4-1 の DATA 文 を この リス ト の 内 


容 に 打ち 変え て 居 形 の 変化 を 楽し ん で くだ さい 


84 4 意 3 次 元 グ ラフ ィ ッ クス 


⑳ 


( 図 4-10) ( 図 4-11) 


(リス ト 4-2) 


159 DATA 942,-55」ー1 の 8 ,24 16。 日 。 5 。 一 72 。ー さ 2 。 一 62 。 一 さ 。 一 64 。 66。 一 


29 。69 。 -2588, -1 
155 DATA 99。-2。68,ー1 の 64 。-1 の りさ 2。ー4 さ 。ー マ 5 。ー4 プ 7 。ー5 。 5 。 58B 。 72 
16g 206 1090。 ー2。 さ 2 。64 。 ー10B。 っ 4 。942 。16』-ー44 6 ら 。2B。17 。12。 ミ 6。-5 ヨ 
17@ DAT 968。-4 さ 。ー さ 8 29 。4 の 9 。 ら 6。64 。 一 1 の 
175 DQT 979,-42 。- う 3 。 一 4 。 1 の 64 。 一 1 。6 さ 。ー ミ の 
18g DATR 9999 


( 図 4-12) ( 図 4-13) 


輝子 を 才 す す 刻 三 ! テ ェ ち エー ム の ッッ ーー j テ ェ ン 円 ーー > 
3 次 元 を 表わす 座標 は 。 これ まで の 2 次 元 座標 ry。 ヵ に も う 一 本 z を 加え ,r, ヶ , る て 構成 


され ます 。 移動 や 拡大 は 2 次 元 の 場合 と 同じ 処理 で 可能 で す が , 回 転 と な る と 少し めん どう に 
か ーー ミキ - ーー リィ 本 ご 吉 コーー ニ ーー RB た と 
な っ て きま す 。 2 次 元 で は 回 転 軸 が 一 本 で すん だ も の が 。 3 次 元 で で は 無数 の 回 転 朝 か 存在 し ま 


ンー 】 方 ゝ 】 生来 テー ンー イオ 却 、 エ ァ J ! 1 5 ーー ュ ケ トー ー PP + 
す 。 無数 で は あま り に も と り と め が な い の で , 普通 は て 軸 , ヵ 軸 , < 軸 の 3 本 を 対象 


85 


に し て いま す 。 いい ゆ の 方 を 変え る と 3 次 元 の 形状 は 軸 , 7 軸 , る 軸 の 3 方 向 の 回 転 の 組み 合わ 
せ で 全容 を 見 る こと が で きま す 。 3 次元 グラ フィ ックス の 醍醐 味 は , これ ら の 各 方 向 の 回 転 を 
通し て 。 あら ゆる 有 角度 か ら モ デル の 形状 を 解析 する こと に ある わけ で す 。 

: 般 に , テ 軸 の 回 転 を ピッ チ (また は チル ト ), ヵ 軸 の 回 転 を ヘッ ディ ング (また は スピ ン ), 


ヶ 軸 の 回 転 を バン ク と 呼ん で いま す 。 


y ヘッ ディ ング 
(7 Heading 


( 図 4-14 3 次 元 窟 標 ) 


3 次 元 モ デル の 形状 作成 手法 


3 次 元 モ デル の 図形 表現 に は , 
(1) ワイ ヤー フレ ー ム (針金 細工 風 ) 
(2) サー フェ ィ ス モデ ル (色紙 細工 風 ) 
(3) ソリ ッ ド モデ ル (積木 細工 風 ) 
の 3 方 式 が ,。 CAD の 分 野 で は , それ ぞ れ 用 途 に 応じ て 用 いら れ て いま す 。 
CAD (キャ ド ) と は , Computer Aided Design の で パコ ンピュータ に よる 支援 設計 " 
と 訳 さ きれ ます 。 も と も と 飛行 機 , 造船 関係 で 普及 し た CAD で す が , 最近 で は ハー ド の コス ト 
パフ ォ ー マ ンス が 高まる と と も に , さま ざま な 分 野 で 使わ れ て いま す 。 
パソ コン で 3 次元 図形 の 表現 を 行なう と き は , (1) の ワイ ヤー フレ ー ム の 
的 で す 。 サーフ ェ ィ ス や ソリ ッ ド も で き な い わけ で も あり ませ ん が , か な 
な っ て し まう で し ょ う 。 あ た か も , 軽 自動 車 に 何 十 ト ン も の トレ ー ラ ー を 引か 
で ,。 パソ コン レベ ル の ハー ド で は 無理 が 生じ て きま す 。 


86 4 章 3 次 元 グ ラフ ィ ッ クス 


ワイ ヤー フレ ー ム は , 比較 的 簡単 な アル ゴリ ズム で 描く こと が で きる の で す が , 反面 。 形状 
の 構成 が だ わかり に くい と いう 短所 も あり ます 。 図 4-15 の 左 図 は , 三角 柱 を ワイ ヤー で 表現 し た 
も の で す が ,A に も B に も 見 えて し まい ます 。 向こう 側 の 線 を ある 所 で 切っ て し まう 陰線 の 処 
理 が 完璧 に 計算 で きる と 良い の で す が , 複雑 な 形状 を 持っ た ワイ ヤー の 陰線 消去 は 大 変 し 
く な り ま す 。 


( 図 4-15) 


座標 値 と 3 面 図 と の 対応 。 


2 次 元 図形 で は 比較 的 簡単 だ っ た 座標 値 の 読み 取り も , 3 次 元 の ぇ が 加わ っ た 空間 座標 に な 
る と, と た ん に 混乱 し そ を うに な っ て きま す 。 2 次 元 の と ほ き の よ うに , グラ ブフ 用紙 に 絵 を 描き 
グラ フ の 目盛 か ら + と ヵ を 読む と いう 単純 な 作業 の 延長 で は , 3 次 元 座標 の 値 を プロ ッ ト す る 

と は , 複 維 な モデ ル ほ と 不可 能 に な っ て きま す 。 図 4-16 に 点 P と その 座標 の 関係 を 示し て み 
まし た 。 見 て わか る よう に 3 次元 の 空間 座標 に お ける 座標 値 の 読み 取り は , と て も 複雑 で す 。 


よほど の 天才 で な い 限 り , 頭 の 中 で この 空間 を 想定 し , 何 十 何 百 も の 点 を 間違い な く プ ロッ ト 
する て と は で きま せん 。 


せっ か く 3 次 元 グ ラフ ィ ッ クス を や る の で すか ら , 飛行 機 や 車 な どの デー タ を 入れ て , さま 


ぎ ま な 方 向 か ら の 図 を 描 め せ て みた いと は 思っ て も , 肝心 の デー タ 入 力 で つま ずい て は 何 に も 


そこ で , 三面 図 の 登場 で す 。 三面 図 は 建築 は ちと より , あらゆる 産業 の 分 野 で 使わ れ て お り , 
正面 , 側面 。 平面 の 各 方 向 か ら 見 た 図 を 1 枚 の 紙 に まとめ た 図面 で ある こと は 周知 の 通り で す 。 


x 三 30 
y 三 20 


点 P の 座 坦 値 


( 図 4-16) 
3 次 元 モ デル の 名 座標 舎 は 。 モデ ル を ゅ っ た ん 三面 図 に 描き 起こ し た うえ , その 図 を 見 な が ら 
プロ ッ ト す る と 大 変 楽に な り ま す 。 
図 4-17 は 三角 柱 の モデ ル と その 三面 図 で す 。 三 角柱 の 点 P は , 三面 図 の P' に 対応 し て いま 
す 。 図 4-16 と 比べ , 座標 の 読み 取り が 楽 で . その うえ 正確 な 値 を 入力 で きま す 。 
CAD な ど 実 務 的 な 3 D.C.G ( 3 次 元 コ ンピュータ グラ フィ ックス ) の プロ グラ ム で は 速く , 


か つ , わか り 易 い モ デル の 形状 を いか に 表現 する か と いう 点 ち 重要 視 る きれ て いま す が , それ よ 


1 


り も 。 いか に モデ ル の デー タメ が 入力 し 易く ,。 また , デー タク の 訂正 が や りや すい か の ほう が 課題 
す 。 デー タベース が で き て し まえ ば その デー ク を 加工 し 料理 する こと は コン ピ 


ー タ の 得意 と する と ころ で す が , 基礎 的 な デー タ 作 , 人 間 の 手 に 負う と ころ が 多い の が 


現状 で す 。 


実務 に 役立つ (FM-7-NEW7.77) | BASIC か ら 入 る (FM-7-NEW7・77) 
( そ W ひ ディ スク ファ イル の 活用 法 (人 | で WO マ シン 語 人 門 の 手引 き (仮題 
(60 年 2 月 刊 ) (60 年 2 月 刊 ) 


興味 津々 の マシ ン 語 を 読者 の な し じん で いる SC か 
ら ア タッ ク . 初め て マシ ン 語 を か じ っ て みよ うと 思っ て 
いる 人 , 足踏み し て いる 人 へ の お RC 


ディ スク を 使う こと に よっ て パソ コン 活用 の 範囲 は 大 き 
く 広 が り ま す . 実務 に 役立つ 使い 方 の 未 革 か ら 応用 まで 
を 入門 者 に も 分 か る よう て いね い に 解 説 し て いま す . 


3 次元 グラ フィ ックス 


4 章 


88 


( 図 4-17) 


用 いま す 。 
ジア ン が 単 


v を 
ジ 


ー オ 
式 ? 


め に は 次 の 


の は 回 


角度 で ラ 


転 


7 ーーー 
標 値 トブ プ o 


回 転 前 の 座 4 


リエ 
た 


と 


【 値 。 イ 。 7。 


本 
し 


ンプ ンー 
剖 た 修 の 寿 


は 回 


シン 


89 


(1) rr 軸 の 回 転 
7 アテ ] ) 0 
りん の / 0 cos の Sin の 
の Z ) ー Sin の cos の 
(2) ヵ 軸 の 回 転 (ヘッ ディ ング ) 
2 ア cos の 0 ーsjn の 
の | =| ヵ 0 | り 
る タ sin の 0) coS 
(3) z 軸 の 回 転 
ア " テア cos の sin の 0 
の | =| ヵ ーsin の cos の 0 
る " と 0 0 ] 
あま り , な じみ の な い 式 の 形 で す が ,。 これ は 「 行 列 」 matrix で 次 の よう に 計算 し ます 。 
て //491 7 i2 //2 も | 7 』 ュ イー 72」27 十 23 る 
772 ぅ 77722 2723| 一 222 ュ 了 ー 72227 72723 る 
7731 7232 7233 7723』 子 ー 72327 十 27233 
「 行 列 は どう も 苦手 だ ] と いう 意識 が 頭 を も た げ て くる 方 ちい る か も し れ ま せん 。 以 前 は 行列 
は 難し すぎ る と ,。 高校 の カリ キュ ラム に 入っ て な か っ た ぐら いで すか ら 当 然 の こと で す 。 
も う 少 し わか りや すく , 普通 の 式 に 直し て み ま し ょ う 。 
(1) ェ 軸 の 回 転 
ィ ”ー ア 
の ニッ ※coS 9 と sin の 
< ニー カル ※sin の ーッ メデ cos の 


90  』 章 3 次 元 グ ラフ ィ ッ クス ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 一 


(2) ヵ 軸 の 回 転 
ニー ィ ※cos 9 一 <Xsin の 
人 
< ディ XSin 9 十 <Xcos の 
(3) > 軸 の 回 転 
ィ ニー ェ ※ ペ coS7 二 ヵ Xsin の 
の ニーr ベ Sin 9 十 Xcos の 


< 角 ニン 


これ で だ いぶ 身近 な 形 の 式 に な り ま し た が 。 式 だ け で は , まだ ビン と きま せん の で 。 実例 を 挙 


ェ テ 100, 7 ニ 100、<=0 の 座標 値 を 持つ 点 P を 想定 し て 、r 軸 を 中 心 に 455 お き に 180' 回 し 
て み ま す 。 リ スト 4-3 は , この 実行 プロ グラ ム と 実行 結果 の 印字 リス ト で す 。 見 て いた だ けれ 
ば わか る と 思い ます が 。 一応 リ スト の 説明 を し て お きま す 。 

(リス ト 4-3) 
1 の Xー ニ 1 の の :Y= ニ 1 の の: Z=g 
11@ FUR D=g@ TU 18g STEP 45 
129  R=D* さ 。14159/18g 
13@ XX=X 
149 YY=YxCUS(R)+Z*GIN(R) 
| 15 ZZ=-Y*SIN(R)+ZxGIN(R) 
| 16g PRINT D。FIX(XX) 。FIX(YY) 。FIX(ZZ) 
17g NEXT D 
Ready 
RUN 
g 1 の 9 1 の g g 
45 1 の gg フ 7g ー7 ア の 
9g 1 の の g ー1g の g 
135 1 の の ー7 の ー7 ア の 
| 18 1 の 9 の ー1gg g 
| Ready 
HARDC 


プリ ント され た 数 字 だ け で は 


(100 行 ) r。 7 ヵ , る の 座 醒 値 を セッ ト 。 

(110 行 ) 0 から 180 まで 45 お き に 回 転 を 設定 。 

(120 行 ) 設定 し た 回 転 角度 D を ラジ アン R に 変換 。 

(130--150 行 ) テ 軸 まわ り の 回 転 式 。 (1) 式 と 同じ で す 。 XX,。 YY, ZZ に 新座 標 が セッ ト さ 
れる 。 

(160 行 ) テ , ヵ , る の 順 で , 回 転 後 の 新 座標 を 印字 する 。 


(170 行 ) ルー プ 


ら 


ン ーー 
く プ 


さる て 。 こ の プロ グラ ム に より , ヶ 軸 まま わり に 45 ず フ つ 回 転 し た 新しい 座標 値 が わか り ま し た 。 


まだ 分 か り づ らら ので , テテ ,。 か る の 名 座標 値 を 三面 図 に プロ ッ ト 


しく で 2 まお 5925 


罰 4-18 が 各 座 標 点 を 拾 2 だ 区 1 ぐ で ) ① が 0 * ② カ : 45 。 ⑨ が 90 , に を と な シブ て い ま 98 角度 に 
よっ て 点 P の 座標 値 が 変わ り , 動き だ は っ ほり わか る と 思い ま す 。 こ の 動き を 三次 元 的 に 視覚 


化し た の が 図 4-19 で す 。 


リス ト 4-3 の 140150 行 を (2) 式 また は (3) 式 に 入れ 替え て ヵ 軸 まわ り , る 軸 まわ り の 回 転 ち も 試 


し て くだ さい 。 


し 


! 

正面 図 !  。i 2) ぁ D | 全面 図 | 
1 e 2 @ 
3 3 


( 図 4-18) ( 図 4-19) 


92 4 章 3 次 元 グ ラフ ィ ッ クス 


| 各 雷 まわ り の 回 転 実際 1 | 


リス ト 4-3 を も う 少 し 発展 させ , r 軸 , 
アン ノバ WAS 


ヵ 軸 , ぇ 軸 ご と の 回 転 を 実際 に 目 で 確か め る プロ グ 
リス ト 4-4 を 用 意 し まし た 。 


回 転 き せる モデ ル は 図 4-20 で 


で 示す 三角 形 の 板 で 


( 図 4-20) 


( 
に 
r 
()Y 
\ 
ct 
】 
4 
5 
こ 
に 2 


まわ り の 回 転 。 2 は ヵ 軸 まわ り の 回 転 


転 。 3 は < 軸 ま わり の 回 転 で 
任意 の 数 字 を 入力 する と, 指定 し た 軸 を 中 心 に 三角 形 の 板 が ひと 回 り し ます 。 
な お ー アゲ ーー リュ さく 


MI 


ます 。 300--320 


また 0.002 を 0 に する か , 300 て 320 行 を 宮 


コ の 
っ 
レン の 4 


平行 透視 一 点 透 視 


( 図 4-21 送 視 変換 ) 
(100 一 160 行 ) 三角 形 の 各 頂 点 の 座標 を デー ク 文 か み ら 読み 取り , X( ヵ ), Y( ヵ ), Z( ヵ ) の 配列 
変数 に 格納 。 
(190 一 230 行 ) メニ ュー の 表示 と 選択 。 
(250 行 ) 9' お き に , 0 から 360' の 回 転 を 設定 。 
(260 行 ) 度 () か ら ラ ジア ン の 変換 。 
(270 一 280 行 ) 座標 計算 の 準備 。 
(290 行 ) メニ ュー て 選ん だ 数 字 に 従っ て サ プ ブル ー チ ン に 飛ぶ 。 
(300 一 320 行 ) 透視 変換 。 
(330 一 340 行 ) 原 座標 系 か ら 画 面 座 標 へ の 変換 
(360 一 380 行 ) 描画 と 消去 。370 行 は 表示 時 間 の タイ ミン グ 。 
(410 一 430 行 ) r 軸 回 転 の サブルーチン 。 
(450 一 470 行 ) ヵ 軸 回 転 の サブ ルー チン 。 
(490 一 510 行 ) z 軸 回 転 の サブ プル ー チ ン 。 


い J 


360 行 の 終わ り に , DEG/9 MIOD 7+1 と ある の は , 線 を 引く た びに 表示 色 を 変え る た 
めで す 。 DEG/9 を 任意 の 数 字 に 置き か え , ダイ レク トモ ー ド で この 式 を 試し て みる と , ど 
ん な 数 字 を 入れ て も 1 へ 7 の 範囲 の 結果 に な り ま す 。 

表示 色 を 変数 C と し て 

C=C 士 1 : IF C=8 THEN C=0 
と する の と 同じ こと で す が , MOD を 使っ た ほう が スマ ー ト と いえ ます 。 
C=z MOD 7+1 


| 
| 
| 
] 
| 


94 4 音 、3 次 元 グ ラフ ィ ッ クス 


(リス ト +-3) 


1 XX XY。Z7 カイ テ フ フー パリ ケン 共 ※ 基 
11 の CLS 

129 FOR I=1 TO さ 

13 の READ X,Y,。Z 

14 。 X(I)=X:Y(1I)=Y:Z(I)=Z 

15g NEXT 1 

169 DAT-125。ー125」 の 125」ー12。9。 り 、125。 の 


19 LINE(@。@) -(639。199) 。PSET 。 1 、E 

2 の LUDCATE @, 

21 INFUT"1 ロ R 2 OR ミ "isF 

2 っ 2 IF F=1 UR F=2 UR F= ミ THEN BUSUB 25g 
239 GUTH 19g 


25g FUR DEB=g ウ TU さ 6 の STEP 9 

26g RAD=DEG* る .14159/1 ヨ 0 

27g FOR J=1 TH ミ 

2  X=X(J) :Y=Y(J) : Z=Z (J) 

29 ONF GUSUB 41g。45g。49 ロ g 

3 の PX=X1/(Z1*. の の 2+1 ) 

31 の  。PY=Y1/(Z1*. ウ の 2+1 ) 

さ 29 PFZ=Z1/(Z1*. ウ go+1 ) 

ささ XX (J) =PX+ ス 2 

ミ 49 YY(J)=1gg-PY*.。 4495 

35@ NEXTJ 

36g CUNNECT(XX(1) 。YY(1) ) 一 (XX(2) 。YY(2) ) (XX() 。YY() ) 一 (XX(1) 
,YY(1) ) 。DEB/9 MOD 7+1 

ュ 79 FOR T=@ TU ミ 99:NEXT 本 

3B9 CONNECT(XX(1) 。YY(1) )-(XX(2) 。YY(2) ) 一 (XX( 誤 ) 。YY( 三 ) ) 一 (XX(1) 
,YY(1.) ) 。g 


42 1= ニ YxCHS (RAD ) -Z* 弓 IN(RAD ) 
4 う 3 の 7Z1=YxGINKRAD ) +Z7*CH5S (RAD ) : RETURN 


4 X1 ニ X*CO5 (RRD ) 7* 選 IN(RAD ) 
人 4 ら 69 Y1=Y 
47@ Z1 ニ X*GTN (RaD)+Z*CUS (RaD ) : RETURN 


49 の X1 ニ = ニ XxCHG (RAD ) -Y* 弓 IN (RAD ) 
つの りり Y1 ニ Xx 己 IN(KAD ) +Y*CUS (KaD ) 
Z1=Z: RETURN 


(写真 1-2 


て 博 回 り の 回 転 ) 


全 2 全う 7 


(写真 1-4 z 結 回 り の 回 転 ) 


エーーーーーーーーーーー ーーーー ーーーーーーーーーー 
| 條 2 W 37 ま 秋 2 基 す 7 


| 回転 実 験 プロ グラ ム 


前 記 リ スト 4-4 の 実験 プロ グラ ム 1 は 各 軸 ご と の 回 転 で 、 た と えば r 軸 まわ り を 45 に し て 。 


が かつ 。 7 軸 ま わり を 30 に する と いう 組み 合わ せ KG4 で SA 


人 )v 
9 
計 


+ ん 。 次 に 示す リス ト 4-5 は 。 3 
次 元 モデ ル を 観察 する うえ で , 必要 な 条件 を ほぼ 満足 ささ る プロ グラ ム で す 。 
機能 は 以下 の 通り で す 


(2) 図形 の 拡大 ( 近 ず く ), 縮小 (遠のく ) 
(3) ェ ,。 7 ヵ , < 軸 ま わり の 組み 合わ せ 回 転 
4 


サン プル モデ ル と し て , 格子 状 の モデ ル を デー 


MER ンジ 28Sc ジ タージ ーー つう 1) の 7 


文 に 格納 し て あり ます 。 この モデ ル は フラ 


モ れる 形状 で す 。 座標 デー タ は r。 ヵ , る の 
順 で 並ん で お り 。 描き 始 ヶ め を 区 別 す る た が a 


た め に , その 場合 は 実際 の ァ 座 標 値 に 1000 を 加え て あり 
お 76ー フ ポー クー ンド 9999% ら クラ ま ラ た 


ンス レン 


も 呈 アー ンー モリ テイ リー ュ >S と ヘー ン >。 ツァ アリ ァ ンーー ピコ 
操作 法 は 画面 に 出力 され ませ ん の で , 次 に 示し て 


mmm ーーーー 
に | 上 図形 の 左右 移動 
| 旨 ) 図形 の 上 下 移動 
H| 図形 を 1.5 倍 拡大 
| 図形 を 0.5 倍 拡大 (縮小 ) 
[2] [8| ピッ チン グ (r テ 軸 ま わり の 回 転 ) 
[4] [6@] ヘッ ディ ング (7 ヵ 軸 まわ り の 回 転 ) 
ト 」 [ パンク (z 軸 まわ り の 回 転 ) 
終了 
Re ーーー SN Es ek 人 
回 転 は キー を 押す ご と に 22.5 度 ずつ 回 転 表 示 き れ ま す 。 な お ,。 こ の プロ グラ ム ( リ スト 4-5) 


は ,。 リス ト 4-1 の 2 次 元 図形 の 回 転 プ ログ ラム と リス ト 4-4 の 3 次元 各 軸 ご と の 回 転 プ ログ 


ム を ペー ズ に し て あり ます 。 


(120 一 180 行 ) デー タ の 読み 込み 。 


(200 一 320 行 ) 機能 の 選択 。 


(360 一 430 行 ) 描画 準備 と 画面 座標 へ の 変 3 
(450 て 610 行 ) 


ク 
(630 て 730 行 ) 各 軸 まわ り の 回 転 の サブ ルー チン 。 


98 


4 章 3 次 元 グ ラフ ィ ッ クス 


(リス ト 1-5) 
る る コマ" ケガ イー ブ フー イト 貞 ・ 力 29 デイ ・ ジ ュ ブ ヨウ ・ カ イ テ ー フ ッ / ( じ ) 巳 . 丁 aj1ma を る 


DIM X(1 の 9g) 。Y(19 の ) 。7 (1 の 9) : CLS: =1 : ユニ =1 : ON ERROR BUTD さ 4 の 
READ X:TIF X=9999 THEN =7: GUSUE さ 5 の :GHTU 2 の 

READ Y。Z:X(I)=X:Y(T)=Y:Z(T)=Z: エニ 1+1:GHTU 1 さ の 

DQTA 7 の ,-9 の , さ の 。 さ 9 , さ の 。 さ の の 。 9 。 一 さ の 。 一 さ の の 。 9 の 。 一 う の の 。 
ー ミ gg 。 9 。 さ 9 

DRTR 7 ロロ ,-9 、15g 、 さ の 。 9 。 19 、79 の 9 。9 。 さ の 。 9 。 の 。 7 の の 。 9 の 
、-15 , さ の 。 9 。 15 の 

DATQ BE5Q ,-90 , さ ウロ 一 15 の 。ー9 の 。 一 エロ の 。 1 の の 。 9 。 さ の 。 9 。 9 。 一 さ の 。 1 
15 9 。 さ の 

DATQ 15g,ー9 。- さ の ,9999 

エエ エエ エ エエ エエ エエ エエ エエ エエ エエ テ エ デ エ エエ ギ デデデ テッ ツ 半 ヅ ヅ メ オ ョ q ョ m ギ = 

MHILE に まく >CHR も (1 ミ ) ょ に 和 あ = ニ TNEEY 

1F ド を =CHR ま (2 日 ) THEN CLS: AX=QX+4 ウ = GUSUE る 5 
TFK$=CHR 和 (29) THEN CLG: AX=QXー49: GUSUE さ 5 の 

1F ド も =CHR 和 も (る) THEN CLS: AY ニ QAY+29・ GDSUB 35 の 

IF ド ま =CHR ま ( さ 1 ) THEN CLS: RY=RY-29: GUSUE さ 5g 

TFE ま ="+ リ "THEN CLG:M=Nx 1 . 呈 : GDSUEB さ 5 の 

IF ド も = リー"THEN CLS: M=M* . 王 : GUSUE コミ 5g 

IFE=" 。"THEN CL: BANK=BANK+ . さ 927= GUSUB 5 

IF に $="="THEN CLS: BANE=BAN ド ー . さり 27 : GUSUB さ 5g 

IF に ま ="6"THEN CLS: HEAD=HEAD+ . ごう 27: GUSUB さら の 

IFE*="4"THEN CLG: HERD ニ HEAD 一. 927: GUSUB ろう 5 の 

IFK ま =""THEN CLS:PTCH=F 1CH+ . さ 927 : GBDSUB さ 5g 

TF ド も =" つ "THEN CLG:FTCH=F'ECH- . ミウ 27 = GBDSUB さら 

MEND:END 

RESUME NEXT 

" キキ エキ キキ キキ キキ キキ キキ エキ キキ キキ キキ キキ キキ キキ キキ キキ 

し INE ( 。g) (639 」199) 。FSET 。 1 。B 

FOR 3=1 TO 1-1 

TrF X(J) >=5gg THEN 49g 

IF X〈J-1 ) >=5@G THEN XX=X(Jー1 ) 19gg ELSE XX ニ X (ゴー1 ) 

YY=Y (ゴー1 ) : ZZ=Z (ゴー1 ) : GBDSUE 62g: X1=BX:Y1= ニ BY 

XX ニ X ( さ ) : YY=Y (J) : 7Z=Z (J) : GUSUE 62 の : X2=BX : Y2=BY 

メ 1 ニ =X1 *M+ 人 メキ エス: Y1=1 の ウー(Y1xM+AY)*.4495 

メー ニーX つ x+QX+ ユ 2 ウェ: Y2 ニ 1 の の ー(Y2*MTAY ) *。 4495 

"エエ キキ エキ キキ キキ キキ キキ キ エ キ キキ キキ キキ キキ キキ キキ キキ キキ キキ 


1F X1 2 の SND X1<638 RND Y1: ロ RND Y1<198 QRND X2> ウ の aND X ぞ くら 
っ 人 NRD YS ジロ naFHND Y2<19B THEN 4 

1F (X1 デ の GND X2Zg) UKR (X1>638 RND X2>63B) OR (Y1<2 AND Y 
< の 2) DR (YY1 >198 AND Y フ >198) THEN 49g 


GU5UE 51 の: SMP X1 .X2:GMAP Y1 ,Y2: BUSUE 1 の 
LINE(X1 。Y1) 一 (X2。Y2) 。PSET ,C 
NEXT:z KETUEKII 
"キキ キキ キキ チキ キキ キキ イキ キキ キキ キキ キキ キキ キキ キキ 二 十 
1F ニー メ 221 丁 HEN メメ X ニ 1 : GUDT ロ 54 の 
IF XX クッ ラム 6 つう THEN XX メニ 6 う 38: GUTU 549 の 
メメ ニ メ ク 
IF X2 ニ X1 THEN ソ 7Y ミ YZ: GOTO 56 の 
YY イニ ザ Y ク ー (イー ザヤ 1 ) * ( メ フ ー メ X ) / (メー メ 1 ) 
TF YY21 THEN Y イ ミニ 1 : GUTUD 59 の 
IF YY アテ 198 THEN イイ 7 ニ 198: GUTU 59 の 
メニ メ XX = マク ニ YY: BUTD 61 の 
IF Y ビ ニア 1 THEN XX メニ メ 2: BUTU 58 の 
メメ ニー メー( メーX 1 ) (YY フーYY ) / (2 フーY1 ) : GBDTU 58 の 
RETUKN 
エエ エニ エエ エエ エエ エ エエ デキ デデデ エギ エア デデデ デデデ デデデ ン ン レン エ エエ エギ ギー テ = 
メメ 1 ニ メ XX 
YY1= ニ YYxCOUS (PITCH) 一 ZZ* 己 IN(P1CH) 
ZZ1 ニ YYXSGTN(PICH) +ZZ*COU5 (PT エビ HH) 
X メ メニ XX1xCOUS (HEAD ) 一 ZZ1*x 己 IN (HEAD ) 
YY2 ニ YY 1 
ニー ニ メ X1※GIN(HEAD ) +ZZ1 CUS (HEAD ) 
メメ う ニ メメ X つ xCUHS (BANK ) 一 YY2 テ IN {BaNK ) 
YY イラ ユニ メ X2 つ GTN(BRNE ) +YY2xCHS (BANK ) 
ZZ ラニ ZZ2 
ロメ ニ メ X メ ラ う / (ZZ アユ x。 BB1+1 ) : EY ニ YY ユミ / (ZZ ラ %。 1+1 ) 
RETURN 


本 42 で ビラ く の 3 次元 回 転 プ ログ ラム が 泣き ます の で , 


(て 
N 


お きま し た 。 リ スト 4-6 が その デー タ で , リ スト 4 
し cn で 守 け し で 2 で の 5 行 機 が 描画 まれ, あたかも 地平 線上 を 滑空 す 


エン ド 9999 は 取っ て くだ さい 。 その まま で す と 飛行 機 の デー タ は 


700 4 章 3 次 元 グ ラフ ィ ッ クス 


(リス ト 4-6 飛行 機 の サン ブル デー タ ) 


199@ 


DATA 1 の gg,-19,-120,-2 の 14 ,-28 の 。2 の 。 1 の の , 2 の,14 。 一 2 。 ロ 。ー1 の 一 
1 2 りり 。 2 の ,-4 
1919 DQTR ウ ,2, 19 の, の 。-19。 の 。 の 。ー1 の 12: トド ウラ 


DATQ 9 の 9,-19, の ,-1 の の 。ー1 の 5 の 。。2 の 4 の 。1 の の 一 1 の 。5 の 。 1 の の 一 1 の の 。 


1 92g 
199,-19,20 

19 さ の DATQ 9』29。-4 り 。ー1 の の 。ー1。2 の = "ジコ ヨ ワ 

1 の 4 の DQTQ 10O,20,50 。 の ,6 。9 の , の 。6 。 1 2 。 り 。2 の 9 。 1 の : " ヒ ~ ヨ ワ 


195g DATQ 1 ロワ ,69 9 の 4 」 6 の 。 1 1 の 一 4 の 。 ら の 。 1 2 の 。 4 の 。 6 の 12 の 。 49 。6 の 1 1 
ロ , の 9,69 9 の 
1969 DQTA 9999 


この サン プル 以外 に も 。 自 分 の 好き な モデ ル を デー タ 化 し て 、 3 次 元 グ ラフ ィ ッ クス の 世界 


(Y 
3 只 
7 
ー 
で 
ご 
人 
プン 
(R 
05: 
ジー 
ン 


。 デ ー タ 量 の 多い 複雑 な モデ ル を 動か す と き は 。 ブロ グラ ム 先 頭 の 配列 の 
数 を 多め に と る こと も お 忘れ な く 。 


707 


(写真 1-10 て 15) 


8 次 元 グ ラフ ィ ックス の 実用 プロ グラ ム を 紹介 し ます 。 ひ と つ は 、 任意 の 方 向 か ら 地形 を 選 
3 次 元 地形 図 ]]」 も うふ た つ は , 第 4 章 の 理論 を 元 に し た 「 3 次 元 形状 作成 プロ 


AI 還る の ハン EN の ペー ンジ に ん 9 


賊 で きる 「 


前 記 2 点 の プロ グラ ム は , 雑誌 で 「3D GROUNDI「3D WORLD」 と し て 発表 し 好評 を 博 
し た も の で す が , 今回 大 幅 に 改訂 の うえ ぇ 本書 に 発表 し まし た 。 


(写真 5-1 3 次 元 地形 図 プ ログ ラム (写真 5-2 3 次 元 形状 作成 プロ グラ ム 
3D _ GROUND) 3D _ WORLD) 


3 次 元 地形 図 プ ログ ラム (3 D GROUND Ver.2) | 


と る 折っ ミミ ココ ーー ナ 。 セ レト 7 ルル アイ クト 7 ィ \ 日 ほど ) ユ 
瑞 線 が 記入 され た 地図 (地形 図 ) を ひと 目 見 た だ け 


703 


の 中 に 構築 する こと は , な か な か 次 し いも の で す 。 

補 を 飛ぶ 鳥 の 目 を 借り て 地上 を 見 お ろ す か の ご と く , 地形 図 を 立体 化し て 眺め る こと が 可能 
な ら ば ,。 どん な に か 素 晴 し いこ と で し ょ う 。 

「 3 次 元 地形 久 ] は , 地形 連 か ら ゥ プロット し た 標高 デー タ を 立体 的 に 図 化す る プロ グラ ム で , 
さまざま な 方 向 か ら 地形 を 鳥 爵 で きま す 。 

出力 する 図 の 種類 は 以下 の 通り で す 。 

(1) ワイ ヤー フレ ー ム に よる 立体 図 

(2) ワイ ヤー フレ ー ム に 陰影 を 付け た 立体 図 

(3) 標高 別 パ クー ン の 平面 凶 

(4) 立体 視 が で きる ステ レオ 立体 図 


圏 プロ グラ ム の 実行 


プロ グラ ム 「3DGND 2」 を ロー ド し ます 。 
RUN と キー イン する と 。 タイ トル と 共に 初期 メニ ュー が 表示 され ます 。 メ ニュ ー は , 
[1) シン キサ クセ イ 
〔2) デー タ LOAD 
3 且 RBS 
と な っ て お り , 1 へ 3 の 数 字 を 入力 し ます 。〔1) は キー か ら 新 し く 地 形 の 標高 デー タ を 入力 する 
こと を 意味 し ,〔2] は すでに デー タ や ディ スク な ど に SAVE され た 標高 デー タ を 読み 込む こと 
を 指し ます 。〔3) は テス ト デ ー タ の 作成 で す 。 


圏 デー タ の 新規 作成 


初期 メニ ュー で 〔1〕 を 選ぶ (1 を 押す 。 ざ は 不要 ) と , 0 て 18 の 縦横 の スケ ー ル が 表示 され , 
デー タ の 入力 待ち に な り ま す 。 (写真 5-3) 

普通 3 次 元 グ ラフ ィ ッ クス は , ひと つの 点 に 対し ァ , ヶ ヵ , る の 各 座標 を アロ ッ ト し な けれ ば 
な ら な い の で す が ,。 この プロ グラ ム は 標高 (Y 座標 ) だ け の 入力 で すみ ます 。 標高 の デー タ を 
求め る に は , 地形 図 を 用 意 し 任意 の 区 域 を 18 メ 18 個 の マス 目 に 仕切 みこ と か ら 始 め ま す 。 この 
マス 目 が 先 の 縦横 の スケ ー ル に 対応 し , + お よび < 座標 に 相当 し ます 。( 図 5-1) 


704 5 意 3 次 元 実 有 有 プ ブログ ラム 3 題 


高 さ (y ) の デー タ 


18X18 の マス 目 


( 図 5-1) 
標高 デー タ は マス 目 の 交 点 (マス 目 の 中 で は あり ませ ん ) の 所 を 等 高 線 か ら 順 次 読み 取り ま 


ほう が 効率 的 で す が , 最初 の う 


ユナ ュ 
ペペ 


す 。 少し 慣れ て くれ ば , 読み 取り な が ら デ ー タ を キー イン し 


an 


S 細 HO 年 山 720 

UL7 衣 252 の 
15 22 30 35 

20 26 34 40 


( 図 5-2 標高 デー タ の 読み 取り ) 
国土 地理 院 発行 の 5 万 分 の 1 や 2.5 万 分 の 1 の 地形 図 を 利用 する 場合 , あら か じ め 100 m お 
"で な ぞ っ て お く と 。 読 み 取り が 楽に な り ま す 。 ま た 該当 区 域 の 地形 が マス 目 の 


月 上 『 豆 )ー ト ーー 生生 コー ジラ リリ ェ ーー > ュー e に まっ 
間隔 に 比べ て 複雑 すぎ る と , 立体 図 と し て の 精度 が 落ち ます の で , 範囲 を せ ば め た ほう が 良い 


(1) 左上 陽 か ら 右 に 入力 し て いき ます が , そ の 数 値 は ー998 か ら 二 998 まで の 整数 に 限ら れ ま 


(0 の ニニ ニニ ニニ ニー ニー に 3 


(2) 4 桁 り (デー ク が ある と き は , すべ て の デー タ を 10 で 割っ て か ら 入 力 し て くだ さい 。 

(3) 入力 の 途中 で 999 を 入れ る と 訂正 ルー チン に 入り ます 。 

(4) 訂正 筒 所 の 横 と 縦 の 座標 を 求 め て きま す の で , 場所 を 指定 する と , その 位置 に ? 印 が 表 
示さ れ ま す 。 

(5) 正しい デー ク を れれ 吉 す と 2? 印 に 替わっ て , その デー タ が 表示 され , 999 を 入力 し た 位置 


か ら 入力 の 続行 と な り 光 09 が 2 


入力 すべ き ク の 数 が 多い の て 大 変 て す が 。 最後 まで 頑張 っ て くだ さい 。 全部 の デー タ の 
入力 を すま す と , 描画 ルー チン に 移行 し ます 。 試 附 的 な デー タ を 入れ て , 途中 で 描画 きせ た い 
と き は , 一 999 を 入れ れ ば それ で ち 描 画 ル ー チ ン に ジャ ンプ で きま す 。 


(1D6 00 DO 封 細 UNUL 太 有人 2 ん 


Ss 


て 


対 72 72 
人 全 人 
03 7 友 
間 科 間 明 
四 

本 


NO Nm 


1UIUL 9 | 


(写真 5-4 入 力 済 : み 男 固 ) 


ー で 選択 し て 下さ い 。 
機能 を 操作 する 主 な キー は , テン キー の 1C6, ファ ンク ショ ン キ ー の PF 1・PF 2・PF 3・ 


[PF1| PF1 は ワイ ヤー フレ ー ム で 立体 図 を 描き ます 。 
LPF2] PF2 は PF1 て で 描い た 立体 図 に 陰影 を 付け る 。 た だ し , 陰 影 の 効果 は 
カラ ー よ り グ リー ン モ ニタ ー を 使用 し た ほう が 自然 な 表現 に な り ま す ( 第 1 章 写 真 参照 )。 描 画 


に や や 時 間 が か か る の が 上 輸 点 で うら 


106 5 意 3 次 元 実用 プロ グラ ム 3 題 


(写真 B.5 ワイ ヤー フレ ー ム ) 
PF3| 高度 別に 色分け され た パタ ー ン の 平面 図 


LPF5| 立体 視 を 行なう た め の ス テレ オ 立 体 区 


+ 


超 3 次 元 感覚 の 立体 感 が 楽し め ま 


Ne2 
に こら 
し 
ッ ー 

7 
二 プ 
C 出 
0 ミ 
ON 


一 


は 時 間 が か か り ま す の で , 描き 上 が る まで 待 


記す 働 ほ を テオ 吟 影 を 人 4 サテ ナマ 
PE2 間 ご さぞ で レレ よう 喉 叉 ク で 1 リリ に ソル 3 
1 シリ ー と テロ ュー ララ ュ テ ミン 
vV3 と ざさ (> この エー を 3P レ て で だ さい りう 。 
アト > 
1 テン キー の 1 を 軍 す と , 


タカ サ ノ ヒ リ ツ (0 to 8) ? 


70/ 


ョ ルディ 
スル に 


F 


高低 比 が 


の 


従っ て , 地形 


(ご 


《 


さ 


す 。 入力 する 数 字 の 大 き 


< ヒ 
に 


ん 求め て : 


ロ 


有 


れ ま す 。 つ まり 。 同 1! 


の 数 


3 


9 


フ 


。 (0) か と 


e 


ノ ェ 
7 た ハ 


時 の 。 


か な 丘 際 表 


の 


な か た 


デー ク で も 。 


レフ 


// ク / 


ア 


比 の 変化 ) 


-9, 5-10 高低 比 ? 


5 ぅ 


(写真 


ピス 


1 


ョ ルン テラ 
と あッ コ 


度 を 


一 
「J 


の 


の で ミン 4 
TL 


見 る 1 


: 大 きく な り ま 


ろ す 角度 ヵ 


下 を 見 お 


2 


で 

1 
cam 

所 
ret 
で 
HI 


の 


所 


ま 。 視 点 


』 
* 


5) 
て 
ト ) 


3 次 元 実用 プロ グラ ム 3 頭 一 一 一 ーーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 


ミ さ れず 一 部 不 自 


ーー 


3 


ytt 


5 


時 ~ 


と , 見 る 方 角 が 変更 で 


3 


キー の 配列 に な ら 
っ て , 2, 6, 8,。4 の 4 つの キー で 行ない S 


少 


読み 込み か 聞い て きま 


こ |』 ン スス タメ 


L9」 や デイ ズン ク だ し 。 デー タ の 入出 力 を 実行 ! と ーー 


ノ 
[@| デー タ の 修正 を 行ない ます 。 こ の キー を 押す と, 全 
箇所 の 座標 を 指定 し 。 正しい デー タ を 入れ 直し て くだ る 


と ,。 メイ ン メ ニュ ー に 戻り ます 。 訂 正 を 続行 する と き は 。 ス < 


認 呈 これ は メニ ュー に 表示 され て いま せん が , プロ グラ ム 終 了 キ ー で す 


709 


) 
レレ 
と . 


に 
NNN 


い 
NW 


wu 


の 


AN 


化 ) 


の 多 . 


万 月 


(写真 5-15 て 18 


70 5 意 3 次 元 実用 プロ グラ ム 3 題 


圏 ステ レオ 立体 図 


3D ビジ ョ ン と か 、 立 体 写 真 な どの 俗称 で 呼ば れ て いま す が 。 原理 は 航空 写真 の 判読 に 用 い 
られ る 立体 視 と 同じ で す 。 航空 写真 の 立体 視 は , 60 % ず ー 平 行 移動 し て 撮影 し た 同 区 域 の 写真 
を 左右 に 並べ , 左目 で 左 の 写真 を , 右目 で 右 の 写真 を 別々 に 見 分 け 。 比 高 を 判断 し ます 。 こ の 
立体 愉 の た め に は 専用 の スコ ー プ を 用 いる か , 肉眼 の 場合 は ある 程度 の 訓練 が 必要 で 

特別 な 機器 や 訓練 な し に この 立体 感 を 体験 する た め に 考え られ た の が 、 い わ ゆ る 立体 写真 で , 


普通 は 青 と 赤 の モロ ファ ン で 作ら れ た めがね を か け て 対象 を 見 ます 。 対象 は 、 向き を ずら し た 


2 枚 の 絵 を 青 と 赤 の イン キ で 同一 箇所 に 刷り 重ね て あり ます の で 。 こ の めがね を 通す こと に よ 
り 左目 と 右目 で 。 別 々 の 絵 を 見 分 ける こと が 可能 に な り ま す 。 

な ぜ 立 体 的 に 見 える か で す が 、 これ は 両目 を 通し た 2 つの 像 の ずれ を 脳 が 判断 し 遠近 感 を 
えて いる か ら で す 試し に 片目 を 閉 て 。 物 を 取 ろ うと する と 妙 に つか み づ ら く っ て し ま 

5 全 を 少し ずら し た 2 枚 の 平面 図形 を 。 強制 的 に 右目 。 左目 に 分 け て 見 さ 
せ て = 2 つの 像 を 脳 は 遠近 感 と し て 判断 する た め 。 結果 的 に 立体 感 が 味 わ 

3 な 9 ます -。 (5-3 

- の プロ グラ と で は ー ラフ と 用 いて 菜 度 の ずれ た を た 2 認 欠 を ディ スプ レイ 上 に 重ね 

Se と に 赤 と 青 記 垂 を ろ 孝 分 発生 し ます が , その 場合 


777 


プロ グラ ムリ スト の 打ち 込み に は , か な ら ず と いっ て 良い ほど 打ち 間違い の ひと つや ふた つ 
は ある も の で , 一 発 で 完 動 さ せる の は 至難 の 技 と いえ ます 。 忠 退治 ご と の 動作 確認 に , データ 
を 始め か ら 入 れ 直 し て いた の で は ,。 デバ グ 効 率 が 落ち て し まい ます の で 本 プロ グラ ム に は テ 
スト デー タ 作 成 ル ー チ ン を 入れ て あり ます 。 RUN 直後 の 初期 メニ ュー で 、 3 を 選ぶ と 自動 的 に 
デー タ が 生成 され , メイ ン メ ニュ ー に ジャ ンプ し ます 。 こ こ で [PF1] を 押し た 場合 。 写真 5-20 
と 同じ 出力 結果 が 得 ら れれ ば 一 応 OK で す が , 他 の PF キー や テン キー の 動作 も 確認 


くだ さい 。 


て みて 


(写真 5-19 テス ト デ ー タ の 描画 ) 


(写真 5-20) 


る まで は 。 1140 行 の ON ERROR GOTO 文 を 取っ て 


お いた ほう が 無難 で 


す 。 また, エラ ー 人 街 止 後 の LIST 表示 を 実行 する 前 に は ,「WIDTH 80」, また は ,「W. 80」 
を 打ち 込ん で か ら に し て くだ き さ 


だ さい 。 CONSOLE 文 に よる 画面 制御 が と れ , 通常 の リス ト 表 示 に 


Ni 


『 お 。 図 5-5 に は 実際 の 地形 デー タ 例 と し て 。 箱根 近辺 の 標高 デー タ を 載せ て お きま し た 。 


ーー ュー 


ーー ニーー 


15 
420 
429 
420 
418 
415 
427 
4 くさ 
42 
495 
さ 99 
391 
さ 386 
3B1 
378 
372 
さ 72 
う 72 
マ 75 


374 


(写真 5-22) 


16 
419 
412 
497 
419 
41 の 
419 
414 
411 
492 
395 
さ 38 
33 
さ 79 
さ 375 
374 
378 
382 
3B7 
37 


17 
4g5 
4 の の 
398 
491 
399 
4 の 9 
4 さく 
4 の 5 
3 
392 
39 の 
3B4 
3 の 
376 
38 の 9 
37 
392 
391 
385 


18 
395 
39 の 
392 
391 
395 
39 さ 
393 
4 の 2 
392 
399 
399 
34 
SB の 
38 の 
3B9 
さ 392 
39 さ る 
399 
381 


8OT 剛 寺 の 9 Z0E ル ん グ の 423 肌 oe ニー ニー ニー コー ニー ニー ニー ニーーーeーmomー ーーーーーーーーーー ニ ーー ーーー weiee 


3D_ GROUND Ver.2) 


(リス ト 5-1 


padE ! [ Fils Naeme ! PNDZ ] 


1 の CLG MIDTHBO の , 2 
1 の 1 PRINT '「' 生還 還 還 還 還 軸 還 間 昌 昌 昌 ia 


1929 PRINT" コ に 
19S3@ FRINT "時 さ ーD ROUND 園 " 
1 ウ 4 の 9 PRTINT" 同 周 " 


1@52 PRINT" 是 ver. 忌 by G.Ta)1ma 司 " 
1 四 69 PRINT" 記 し < 
197 ロ PRINT 「 EEE 
1 DIMB(1 ヨ ,18) ,Q(18B。18) 

1d99 DEF FNL1=X1 一 (X1 一 X4)※(Y1 一 1)/(Y1-Y4) 

119 DEF FNL2=X1 一 (X1 一 X)#(Y1 一 1)/(Y1-Y ジ ) 

111 DEF FNL さ ミニ メダ ー(X マ ーX 人 4 ) #(Y デ ー1 ) /(【YーY4 ) 

1129 DEF FNL4= ニ X マ ー(X コ ーX う ) ※(Yー エ ) / (イセ ーY う ) 

11 さ gd DEF FNL ロ = ニ X4ー(X4ーX ユ ) ※(Y4ー1 ) /(Y4ーYS) 

114 り の DEFINT X。YiUN ERRUR BUTOU 3 う ⑦ の の 

11Sg UNREY(1) G ロ USUE 182 の 

116 の HNEEY(2) GUGUB 162 の 

1179 UNKEY ( ミ ) GUSUE 252 

118g UNEEY( 弓 ) GUSUB 194 

1199 UNEKEY(1) GUSUB 296 

122g FUR1=1T ロ SEEY( IT) HFFNEXT エ 

121 ウ FRINT 


2 上 EBEOIh ソ ーー ニニ ーー ニン ーー ニニ ーー ニョ ニョ 
123 の の PRINT" [11 ・ ジッ キ サフ セ ゴ ネリ 

1249g PRINT" [2] ・ DaTaLUAaD" 

1259 PRINT" [ ラ ] EE 紀 コ 二 Ne 

の に に CO ュー ニーー ニ ニー ニー ニー ニニ ニニ ここ で レタ タ に ニレ ーー ペド ンー 


1279 PRKINT:PRINT" アタ ラ =/2 テー タダ ヲ キー カラ ニュ ウリ ョ フラ ルト キ 双 1"kPKINT 

1B9 PRINT" ロート“ ヌル トキ ) 2 ラオ シテ 2 サイ 。 "=sPRKINTsPRKINT: GOUSUE 2 
4 こり | 

129(9 6$ ニ INEEY 和 を = ITF 5 も も ="1"THEN GUSUE 298 の: GUSUBE 21 の gs GUTU1 さ 3 の 

1 3 の gg ITF も = ニ " リ 2"THEN BUSUB 298g: BUSUB 2849:FRINT:PRKTINT "チイ キハ "リュイ 
名 リ テー フラ 。 "sgPRINT: GUHSGUB2219: GUTU1 マ ミウ 

1 う 1 の IF ご まこ りう "THEN GOSGUB 298 の : GOUTU う の 2 の 

1329 GOTOU 1299 

する る ^ 攻 基 区 基 基 芝 基 芝 基 基 ニコ キナ 芝 基 基 基 基 基 区 区区 区 

1 う 人 4 の 日 T ニ マロ ロラ : アア エニ フェ ゴ アニ (7Z エ す 。 避 ) \ さ = アニ 6 = Fー ニ 2 = ロニ HT /H ビ 

1 うら 急 「# 基 基 基 テテ テテ MENU テテ 基 芝 芝 基 芝 芝 

136 の MIDTH の 9. 25: CUNSULE の 22 4 の 9.9 


| | る た @ 4 714ig] 1 
( Fi】E REd2 2 2 リ 5 り / 」 


LOCTE の の,22: CDLUE 4 
GU05SUEE 298 の 


FRTNT"F 1 ] . コウ テイ ヒ = [ 41. ホウ コウ ー ":CHR ま (HEF) : "B" ェ CH 

KR (を HEE ) :" [ 弓 ]〕.LDaD/SAVE [PF1 ] . ワ ィ ヤー フレ ー ム " 

PR TNT"[ つ ] . シテ ン ノ グ カ サ ニ = 4"s PHR も (HHF の ) : "6 
[6]. DaT シュ ウ セ イ [PF2].^" イ ント フレ ー ム " 

PRKTNT "上 . ライ バイ イチ = "PHR 和 (HEE ) : "2" ュ ビ 昌 

民 多 (を HEF ) :" [PF] . B/R ワ イヤー [PF る ]. 有 "ターフ ヒョウ リュ 


CULURK フェ:LDCaATE 14.22:PEINT HIi:LUEATE 14.23:gFRINT Dai iLO 
CaTE 14.24:PKINT Z テ 3:LUCGTE 26,2 う : PRINT Fi 
うーT NE に EY 生 = 了 F 生ま ー" ら り ロ UERK 多 ="E" THEN FUHR [=1 TO 5:EKEY(1) 0F 
Fi: NE メイ 5 G9: END 

FUR =1 丁 有 己 :EEY(T)UNz NEXT 1 

ビビ 電 らら 三 VTR 0 DR らら 和 を = ニ " リ 2 リー ロ RK 和 = リラ リ DR らら も =" リ 4 オリ UR も = リロ " UR = 
"らち" 耳 HEN 146 の 9 EL5E 0 


GUSUB 29 ヨ の : し TINE (の, の ) 一 (25。1) 。" "。 Es UN り aL (5S ま も ) GUSUB 148 の 
ぅ > 151 の 。 1 る の 。 1 らら の ララ の 2 

GOTO 1 ニア の 

LUCATE 14.22:PRINT" "agLUCaATE の の :PRINT "カサ ノ ヒ リ リ ウー (の 


た ロ 量 ) "= INPUT 日 T : 了 FHI<g の ロ E HT: THEN 1489 

H ロ =H エ /HCs LTNE (9, の) 一 (2 つ 5。1) 。" "。。 昌 

RKETURN 

LUCATE 14。2 そ =PRTNT" ラー "::LUPRTE 9, の 9:PRINT" ラ テン / ダ カ サ (中 
TO )= ":TNPUT Da :TF DA< の OR Daz8 THEN 1510 
LINE( の 9 の) 一 (25。1) 。" "。 BERETURN 

LDCATE 14。24:PRINT" で " ::LHCATE の 。 の 9:PRINT" ス イベ イ イチ (- 昌 
TO 8 ヨ )= "= INPUT Z エ =1TF Zi マー DR ZI>B THEN 15 る の 

4 の アー ニア エメ マユ: ェ ゴ フ ニ (Z} す .) x そ : し TNE (の ) (25。1) 。" "。。B:RETUEN 

9 LUCATE つら 6。 つ さこ :PFRINT" っ "LocerE 9,9: PRTNT "ミル ホウ カ " フ (2.4. 
日 、6) = "= TNPUT F :LDCATE 。 の 9:LINE(9。1)-(25,1)。" "。。B 

IF F= ニ 2 THEN FOUR エニ = ロロ 18:BEEFP 3 EEEP の :FUR J=g TU 18:A( 
1 、J) =E【f 。J) 一 HL NEXT すさ 。T:BHTO 1619 の 

IF ビー6 THEN FDR = の TO 18zEBEEP 1:BEEP 9:FOR J= の TO 18:A( 
1 ,J) =B (1 コーJ。T) HL:NEXT す 。 エ BUTD 1619 

TF ビニ ヨコ THEN FOR 1T=g TO 18:BEEF 1:EBEEP :FUHR さ =g T ロ 18: ム ( 
1 。J) = 弓 (1 昌 1 。 1 ローJ) HL : NEXT J。TI:BDTD 161 

IF F= ニ 4 THEN FR エニ TO 1: BEEP 1:BEEP @:FDR J=9 TO 18: く 
【 ,J) =B( け 。1 ロ 一 T) 一 HL : NEXT 了 。T:BDTD 1619 

GOT ロ 155 


199⑦ 


191 


1 59 
1 ワラ 3 加 


RETURN 

「 革 芝 基 え 天天 ピ AINT MOUDE ポポ 

REYK(1 の ) UN 

FUR 1=1 TU 5iEKEY(I)UFF:NEXTI 

CZ=INT (7 ウーZ*9) : ニコ 4: GUSUB 29 ヨ 四 

CLS: ZU=9:D=Da:LTINE (の 。9) 一 (639 。17 ミ ) 。FSET 。 。E 

LUCATE 1 2 の 9:PRINT 征 生 

FUR X=1 TOU 1 ヨ 8:FUR Y=1 TO 18 

X1=YxM+ZU+ じ Z ょ Y1 ニ ー(H※XRR(X 一 1 。Yー1 ) 一 D 一 11+DRX) : X コ ニ X 1 二 > 
HxQ(X-1 。Y) -D-1 1 ウ +DAX ) 

X さ ニ X メ セキ オア ェ =Y さ ニー(H テ RA(X 。Y) 一 D 一 DA 一 1 1+DQR※9) : X 人 オニ メ さ ミー : マオ ニー(HXAQ(X 。 
Yー1 ) -D-DaQ-} 1 の +DA テ 9 ) 

TITFX1 ヾ gUR Y1 く の URY2 く の URY2 く < OURYSSQ_ OURY4 ぶ ミウ URX2 つ 6 この 9 OURX4 く < 
gg URX さ > と 639 THEN1 ヨ 1 の 

=Y1-Y2 ビニ モビ +2 軌 =: ビニ INT (CX。17 弓 ) : IF C ミ 1 THEN ビ =1 

IF じ >6 THEN =6 

RCUHLUR=C 

GUSUB 2599: CUNNECT(X4。Y4) 一 (X1 。Y1) 一 (X2。Y2) 。RCULUR+1 
CUNNECT(X4。Y4) 一 (X2。Y2) 。RCHLUR 

に =Y4ーY さ : ビニ ビ +2 ウ =: ビニ INT (CX。17 弓 ) : IF CS1 THEN ビニ 1 

IF C>6 THEN =6 

BCULUR= ビ 

GUSUE_ 269g: CUNNECT (XS 。Y2) 一 (X ス 。Y ミ ) 一 (X4。Y4) 。BCULUR+ 1 

NEXT YsD=D+DQ: アリ = ニ ZU+Z:NEXT XsCULUR 7gRKETURKN 1 うろ 7 
"天天 MTRE MOUDE 区区 区 共 基 区 

EEY(1) UN 

FOR 1=1 TO 5:KEY(1) 0FF:NEXT 1 

CLG: GUHSGUB 298 

C ァ アニ アウ ーZ *9: 四 ニ 24 : 7 ロニ ウロ: D=DA: LINE(g。 の ) 一 (639 。 1 フラ) 。PSE T 。 。EH 
LUCATE 1.29:PRINT T$ 

FUR X=1 THU 18:FUR Y=1 TO 18 

X1 ニ Y テ ※M+ZU ロ + ビ Z = Y1 ニ ーH テ 代 (メー1 。Yー1 ) +D+1 1 ウーD 人 9 = メニ メ 1 = マコ ニーH テ 人 
(Xー1 。Y) +D+1 1 ウー-DAX9 

メ う ニ X+Z :Y マ マニーH テ Rn(X 。Y) +D+DQ+1 1 ウーDQK ワ ェ X 人 オニ メ マ ーM) = Y オ ニーH% 合 (X 。Yー1 
2 + せ D+D 人 1 1ーDA ワ 

IFX1 マ BUR Y1< の 2 URY2X ウ OURY2 く の URY さ < の UKRY4< く の UKX2>6 う 9 OURX4< 
の URX ラ >6 う 9 THEN19 う 3 の 

CUNNECT(X1 4Y1) 一 (X2 。Y2) 一 (X そ 。Y ス ) 一 (X4。Y4) 一 (X1 。Y1) 

NEXT YzD=D+D: Z リ ニ ZU+Z = NEXT Xs:RETURN 1 マフ ア の 


2=ー( 


77Z 


194 切 「 失 共 上 共 基 共 共演 区 BR 罰 TEE MODE 基 牙 基 基 基 牙 天天 天天 

195 の 9 KEY(1 の ) ON 

1969 FUR 】=1 TO 弓 :EEY(1I)UFF:NEXT 1 

197 の じ L 紀 : BUSUE 298 の 

19d の じ Z ニ フウ の ーZ*9: じじ アニ アウ ーJZ 9: ニク 4 : ZU= ニ の: 7ZU= の : D=DQ:LINE (の, の ) (6 
9 。17 う ) 。PSET 。 。B 

199 の 9 LUCATE 1 ,29:PRINT T 多 

2 の の FDR X=1 TO 1 ロ :FDR Y=1 TO 18 

2 の 1 の X1 ニ =Y* 軸 アリ キビ Z : 1 ニーH テ 内 (メー1 。Yー1 ) +D+1 1 の DX9: X2=X 1+ 還 = Y フ ニーH テ 人 
(メー1 。Y) +D+1 1 の ーD ム テ 9 

292 の X マ ニ メ 2+Z : マラ ニーH テ 全 ( メ 。Y) 上 D+Da+119ーDQ*9: X4 ニ X メ ユー: Y4 ニ ーH% 介 (XYー1 
) +D+TDA+ 1 1 ウーDQ テ 9 

2 る の IFX1< の DUR Y1< の UKRY2Z の DRY2Z ウ の DURY う < の URY4< の DRX2>639 UKX4< 
の UKRX う >6 う 9 THEN2 の 9 の の 

294 の COUNNECT(X1 。Y1) 一 (X2。Y2) 一 (X そ 。Y ネ )ー(X4。Y4) 一 (X1 。Y1) ,1。UR 

2 の 5 の X1 ニ Y 罰 キア アロ + じ CZ = 1 ニー ロ ※ 生 (メー1 。Yー1 ) +D+1 1 の DX ワ 9: X2= ニ X1+MM: Y フ ニーH 
% 仙 (メー1 。Y) +D+1 1 の 9ーD 人 an テ 9 

296 の X ス ニー メ フォ ゴ Z : Y ラ ニーH% 代 (X 。Y) +D+D 人 1 1 ウーDQ9: X4 ニ X メ マラー: Y4 ニ ーH テ 人 (XYー 
1 ) +TD+D+ 1 1 の ーDQ*9 

297 の IFX1<UR Y1< の UKRY2< の DURY2< の DURY う < の URY4< の URX2>639 OURX4 く < 
の URX ス >6 う 9 THEN209g 

2989 COUNNECT(X1 。Y1) 一 (X2。Y2) 一 (X る 。Y さ ) 一 (X4。Y4) 一 (X1。Y1) 。2,DR 

2 の 9 の NEXT Y:D=D+D Z リ = ニ ZU+Z = 7Z リ =ZZU+JZ = NEXT XRKETURN 1 る 7 の 

2 つ 1 の 切 ' 贅 区 天美 天天 天天 天天 INPUT DRT 人 QR 贅 天 贅 区 区 基 革 区 区 

21 1 の CUNSDLE 22。 る 。 の 。 の 

212g GUSUE 2 ミ 1 の 9: CDULUR 4:LITNE( ロ 。22) 一 (79。2 る ) 。" " 


,BF 
FR 1 ユ = の TO 1 日 :FDR = の TO 18:LOCATE Jx4+6, エ +1:EOLDR 6PRT 
NT "2":CULOR 4 


2149 LUCATE @。22: CHLUR アフ PRINT"E" ョ ミエ ュ ゴ ョ "コモ リュ LUCATE 19,22: TNP 
UT BK(1I 。J) : GUHSUB 298 の 

215 の 1F E(1 。J) > ニ 1 の @ DR (1 。J)<=ー1 の の THENPRTNT" テ *ー ヲ ノ ケタ カ " オ 
オキ スキ ~ マス 。 " s BEEP = GUTO 2 っ 14 の 


216g IF 互 (1 。J)= ニ 999 THENLUCATEJx4+6 。 エ +1:PKTNT"ー" BUSUE 2389: GO 
TU21 4 の 


<1 7 の IF B(TI 。J) ニー999 THEN E(T1 JJ) = の : GUTOU 221 の 


2189 CULUR 4:LUCATE Jx4+ マ 。 エ +1:PKTNTU TNG " 若 提 "3B(T 。J) 
2199 LINE( の 。22) 一 (2 。2 さ ) 。" "。。B 
229 の NEXT J。1 


フク ウ 1 の 55099 サイ ワ ~ イ サイ ショ ウチ 共 共 基 基 基 基 天天 基 共 


ーーーーーーー ーー ーーーー ーー ニー ニー ーー 


778 5 章 3 次 元 実用 プロ グラ ム 3 題 


し 】 
で で 2 


ご デ さ 回 


マ 4 ウ 


225g 


“6 の 


ご 7 
<2Bg 
2299 
3 


< さ 1 


つ そ つ 
ーー アデ 


つべ スマ 
デー つの 


2 さ 4 
マ さ 5 
2 さら 6 の 


237g 
< さ 8Bg 
39 
<499 


護 File Nage ! SD5M02 


LOCaTE の,22:PRINT"yY ラ 2 オッ チワ グ * サイ 。 0 


HH=E (の 。 の ) : HL= ニ HH: FUR エ = の TU1 ヨ H: BEEP 1:BEEP の :FURKJ= の TO18zIF 日 
HB(I 。J) THEN HH=B(T 。J) 

IF HL>BEK(1I。J.) THEN HL=B( 1 。J) 

NEXT J。I:FUR = TU 1 ヨ :FUR J= ウ の TOU 1 日 : BEEF 1:BEEF の 

(1 。J) =B( 1 。J) 一 HL : NEXTJ 。.I : HS=HHーHL : HIC=INT (HS/2 の ) : 1F H じ = の 

THEN HC=1 

RETURN 

7 共 天 天天 区 DOT コウ セイ ※※ ポ 天天 

EEY(19) UN 

COUNSULE 22 4。 さ 4 の 。 の 9: GUSUE さ 19: GUHSUB 2 さ 5 ウ : GUSUE 2 さ ヨ の : GUSUBE 

221:CL5s RETURN 

* 贅 天 天 天天 DQTR SCRLE 天天 天天 区区 

CLS:CULUR 7 

FUHR 1= TU 18:LUCQTE Tx4+ さ 。 @:PRINTUSING"' 音韻 韻 拓 "=sT ュ =LOUCATE 

9 。 エ +1:PRINTUGING" 揚 韻 拓 "s TsNEXT 1i 

RETURN 

" 共 天 天天 基 天 天 基 天天 DRTOA し TOT ※ 半 天天 天天 天天 

CULUR 4:FUR IT=g TU 18:FUR ココ = の TO018d:LUCATE J※4+ う 3。 エ + キ 1:P ビ RINT 
USTNG" 韻 半井 "』E(T 。J) 

NEXT J。Is:RETURN 


" 革 ま 区 基 基 区 天光 コウ セイ 天天 区 
CULOUR 6 
GUSUE _ 2789:LINE(。22) 一 (79。24) "9 リ 。。BEFELUOCATE の 22sPRKTNT" 


[L DaTA ジュ ウ セ イー ]" 

LUCATE 2 。2S:PRTNT "ヨコ サ ~ー ヒ ョ ウニ "リュ sgLOUEATE うう 。22 = TNPUT YU: GO0S 
UE 298g: IF YU< ウ UR YU>1 ヨ THEN BEEP: GUTU 24 の の 

LUCATE 25,2 さ :FRTINT "タテ サー ヒョウ = リュ ELUCRTE うう 。 ぞ うき : INPUT T 合 : G0S 
UE 298g: IF TA< HUR Ta>1 THEN BEEP:GUTOU 242 の 

LUCATE YOX4+4。T+1:CEHLUR 2EPRINT" 27gCOULOR ら 6 

LUCaTE 45。2 さ : FRTNT "data=" ェ ェ TNPUT E(T 人 YU) : IF B(TA。YO) > ニ 1 
の 29 THEN BEEP:GUTU 244@ 


CULUR 22: GUSUB 251 ウ =PRINTUGTING" 提 韻 韻 井 " 3E(Ta。YO) s :COULOR 6 
LUCATE45 4:FRINT "da モ a ニー ジュ ウ セ イラ の ケル SPACE EEY] オ 
ワル ニ [RETURN EEY1" 

ごま ーINEKEY 和 ま : TF・G も ニ " "THEN CHLUR 4:BUSUB 251 ウ g:PKINTUSING" 拉 


若井 持 " 3B(TR。YD) 3 : BUTD 2 る 9 


TF ご $= じ HK も (1 ミミ ) THEN COLUK 4: BUSUE 2 紀 19=:FRINTUSTING" 韻 韻 韻 井 " ョ 日 
(Ta。 YU) 』 BHTU 252 の 


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ーー ーーーーーーーーーーーーーー ーー ーーーーーーー |!/,9 


50T0U 247 の 

LINE (の 22) 一 7( プ 9 24) "9 リ 。。BF gi RETURN 

LUCPATE YY ロメ 4 イエナ 1 : EETURH 

/ 昨 学 共 了 共 光 基 基子 7 グー-/ 其 芝 区 基隆 区 基 基 芝 基 

FDK 了 =1 有り 巳 : ビ EYE)UFF NEXT EEYK19 の ) UN 

CL5 : 5D5JB 2789:LINE (12 そ 7)ー(56 の .169) ,PSET 。 ,B 

FUR 」= の TU 18g:FODE = の TD 18 

じ =INT( 全 ( エ 。J) /HC/2.8) : TF ビジ 7 THEN ビニ ア 

LUCATE J テ ラナ 1 用 。 エ ナオ 1 :CULUDEK じ :PRKINT " 証 還 還 ": 

NEXTJ。TgRETURN 1 つう 7 の 

^ 攻 基 基 攻 基 し TNM ビ ピロ エト HHT 攻 散 攻 攻 竹芝 芝 

IF Y ア 4 マニ Y1 一 ((Y マ クー ヤ 1 ) え ( メ 1 一 アオ 4) ) / (メス ーX 1 ) THET: 267 の 

ITF Y4= ニ Y1 THERN _ FUK エニ マフ T ロ Y1:EONNECT (FNL ラ 。 エ )ー(FNL2 。 エ ) 。 人 CO 
LUOR : NEXT GU0TD つ 267 の 

IF Y1=Y ク THEFHI FUOE 了 = ニ Y1 了 ロ Y4:COUNNIECT (FNL 1 41) 一 (FNL ラ ,T) 。 人 CO 
LUOR: NEXT GUT0 ジ る 7 の 

1TF Y4= ニ Y ダ THEN FURI=Y1 D Y4:gCONNECT(FNL1 4 エ 1) 一 (FNL24T) 。EO 
LDR: HEXT:5UTU2 ら 7 の 

IF Y ダ ラテ Y4 THEN FOUR エニ Y1 耳 り Y4:gCONNECT (FNL1。1) 一 (FNL2。T) CO 


LDR: REXT:FUR エ = ニ Y4 TOD Y2:CHRNEET (FNL ラ 。 了 )ー(FNLS 。 エ ) 。 CULURN 
EXT: GUTO 6 ら 7@ 


ITF YEY1 人 ND Y2<Y4 THEN FDR エ =Y1 TU Y2g CUNNECT (FNL1 , エ ) 一 ( 

FNLS」T) 。QEULUR:NEXT:FOE エニ Y2 T ロ Y4: EDNNECT (FNL1 . エ ) 一 (FNLS。 
1 人 6COULOURK:NEXT: BOTOU 67@ 

ITF Y1 >Y THEN FURE エ = ニ Y2 イロ Y1:CUNNEET (FNL2。 エ ) 一 (FNL ラ 。 エ E) 。a ビ OU 

LOR:NEXT:FCR エニ Y1 TO Y4: CHBNNECT (FNL 1 。 エ 1) 一 (FNL。 エ ) , 人 REULUR:N 
EXT: GUTD 267@ 

RETUEN 

" 基 ま 区 ※ 天 芝 LTNE PAINT BCULLOUR 区 区 共 基 

ITF Y マ テニ Y オ 4 オー((Y ラ ーY4) ※(X4ーX つ ) ) / (メラ ーX4) THENGBUTUD276 の 

IF Y4= ニ ママ THEN FURI= ニ YS TU Y4:CONNECT (FNL。 エ )ー(FNL4 。 エ ) 。BCO 

LUR: NEXT: GUTUS769 

IF Y4= ニ Y2 THEN FORI=Y4 TTY ミユ CEHNNECT (FNL 1) 一 (FNL4 。1) 。BCO 

LUR: NEXT: GUTU2 ア 76 の 

IF Y デ = ニ Y ユ THEN FURI=Y2 TH Y4:CUNNE じ PT (FNL ミ 。 エ ) 一 (FNL ご 1) 。BCG 

LUR: NEXT: GUT ロ タン ア 69 

IF YY4 THEN FORK エ =Y2 TOD YY: CONNECT (FNL ミ 。 エ 1) 一 (FNL4。 エ ) 。BCO 

LUR : NEXT: FOUR エニ Y マ TU Y4: CEHNNECT (FNL ラ 。 エ )ー(FNL EE) 。BCDLUDR: N 
EXT: GUTOU 276@ 


}20 5 章 _ 3 次 元 実用 プロ グラ ム 3 題 ニ ーーーーーーーーーーーーーーーーーーーー 一 


IEtE 半 / し File Nane ! 05ND2 ] 


74 の IF Y4EY2 RND Y4SY う 3 THEN FUR IT= ニ YS TO Y4:CONNECT (FNL ミ 。 エ ) 一 ( 
FNL4。1) 。BECHLUR:NEXTsFUR エ =Y4 TO YS3:CUNNECT (FNL。T) 一 (FNL4 。 
1) 。BCULUR:NEXT:GUTOU 76@ 

375@ 1F Y4EYSE THEN FOUR I=Y4 TU Y2:CUNNECT(FNLG。 エ ) 一 (FNL ミ 。 1 ) 。BC 
ULUR:NEXT:FUR 1= ニ YS TU Y3:CUNNECET (FNL。 エ )ー(FNL4 。 1) 。BCOULOR: 
NEXT: GUTU 276 ゆ g 

</6@ RETURN 

コ プ ア 他 )  ※ 共 天 ※※ ル LOUQD GAVE ※ 天 天天 天天 

278 四 EEY(1 の ) UN 

2S79g CLS 

Sd99 FRINT" ( DaTQA 7 お が ーー ) 三 [11 の ニー コン / 証 の ビュ コリ 語り 三 
2 

2 日 1 G ま =INKEY 和 も : ITF G ま ="1"THEN GOUSUE 2B99: RETURN 

2 ロコ 2 の IF ="2 リ THEN GUSUB SB4 ウ :FRINT: GUHSUE _ 21 の 2:RETURN 1 スミ の 

2d3 ウ GOUTO 2 ヨ 1 の 

2 ヨ 4 四 天天 基 区 DRTR LORD ※※ 革 贅 天 基 天天 

2 コ 59 INPUT "ヨミ コム FILE NAME " ュ T 和 ま : 有 UPEN" エリ 。 韻 1 。 征 和 も 

2d6@ INPUT#1 。「 生 sFUR 1 エ =9 TU 18:FUR J= の TO 18 

2 日 7 TINPUT#1 BE(T 。J) : HB(T 。J) =B(T JJ) +1 の 9 

<dag NEXT J。1s CLUSE#1 : RETURN 

つ ロ 9 他 区 区 区 区 天 区 DATA GAVE ※ 交 基 区 区 区 天天 区 

299gg PRINT: INPUT "ポパー スル FILE NaHE ":T 多 STF LEN(T 和 も ) BB THEN BEE 
Ps GUHTU 29 の の 

291@ UPEN"O 」1 。T 和 ま 

マ 92 PRINT#1 。 和 も:FUR エ = ウ の TU 18:FURK コ J=@ TO 1 

293G PRINT# せ 1 。B(I 。J) 

294 NEXT J。I: CLUSE# 1 : RETURN 

つ ワ 5 引  「 革 区 区 区 区 共 区 基 区 芝 基 基 基 天天 区 天天 天天 基 基 基 区 天天 基 基 基 区 

<969 RETURN 1 ミア 

マ ワ アプ 人 区区 基 芝 区 取 基 区 ロビ ヒビ ※※ 共 共 基 区区 疫 芝 

7B BEEF 1:FUR BE= の TU ミミ 9:NEXT BE: EEEP の :RETURN 

マ ワ ワウ 区区 基 基 革 基 天天 子 ERROUR 天天 区 区 革 区 

さ d@g BEEP:PRINT" エ ラー No" saERRK ェ " 力 " リウ g セ イー シフ シダ 。 メニ ュー 二 モト "リッ マタ 。 " 

う g19 FURK Ti エ = の TU の の g の :NEXT: RESUME 1 る 5 弓 の 

ささ の つの  「 半 基 区 天天 区 牙 基 基 ヒコ] 区 区 共 天天 区 基 区 基 

う ウ 3 PRTINT "DATA サフ セイ チュ ウリ "=PRKINT 

う 婦 4g FUR = の TO 18:B(1. ウ )=RND テ 19:E(T。1H)= ニ KND*1 の 

うら 5 FOUR コ = TU 18:E( の 4J)=RND テ 1 の :EH(1 ヨ コロ 。J)=RND テ 1 

NEXT J,。I:BUSUE 2219: GUTOU 1 ミミ @g 


727 


3 次 元 モデ ル 形 状 作 成 プ ログ ラム (3D WORLD Ver.2) 


・ の ブロ グラ ム は 。 第 4 意 の 3 次 元 ブ ロク を 実用 向き に 発展 させ た も の で , 3 面 図 の デ 
ー ク を も と に さま ざま な 角度 か ら の 立体 図 を 作成 し ます 。 


独 筐 の パー ス や 。 杉 械 の テク ニカ ルイ ラス ト 等 は , 人 間 の 手 に よっ て 描き 起こ す の が 普通 で 
す が 。 これ は 多く の 時 間 と 大 変 な 部 練 を 必要 と し ます 。 

陣 生 の Pe に 
ー ク の 入力 ち , 省力 化 モ ー ド を 設定 し , 能率 的 な 作業 が で きる よう に 工夫 し て み ま し た 。 
実用 た し て , また 趣味 と し て も 充分 楽し め ま す の で , 気軽 に 2 


は ,。 大 きく 分 ける と 以下 の 3 つの モー ド に より な り た っ て いま す 。 


(2) 3 面 図表 示 と デ 図 
(3) 立体 図 描画 (アク ショ ン モ ー ド ) 
各 モ ー ド の 機能 は 図 5-6 の 通り で す 。 図 中 で , RET は ウリ ター ン キ ー, BS は [と 」 バ ックス 
ペー スキ ー を 表わし ます 。 入 力 は 大 文字 し か 受け ませ ん の で , CAPS ロッ ク を か け て お いて く 


旬 メイ ン メ ニュ ー 


「3DWLD 2」 を ロー ド し ます 
RUN 直後 の 画面 表示 は メ 

ー タ の 入出 力 , 印字 を 選択 し ます 。 

価 3 う D アク ショ ン 


ィ ン メ ニュ ー か ら 始 まり ます 。 ここ で は , 各 モ ー ド へ の 移行 や , テ 


722 5 意 3 次 元 実 月 プ ログ ラム 3 題 


三面 図 モ ー ド 


3D ACTION……AC( ア クシ ョ ン モ ー ド へ ) *※ ( 点 を 打つ ) 

SAVE 3D DATA…SA (デー タ の 保存 ) / ( 線 を 引く ) 

WORK 1……W 1 (三面 図 モー ド へ ) MI ( 再 入 力 ) 

WORK2……W2 ( / ) R ( 三 図 を 描き 直す ) 

LOAD 1 L 1 (デー タ の 読み 込み ) W (壁面 省力 入力 ) 
LOAD2……L2 ( / ) | CIRCLE…… C (多角 形 岩 力 入力 ) 

LLIST 3D DATA…LD (デー タ の 印字 ) MAIN NMNIENU…BS( メ イン メニ ュー に 記 ろ ) 


(BEEP の ON/OEF) 


アク ショ ン モ ー ド 


ACTION……RET 
MIAIN MENU…BS 
HARD COPY…H 


) 
) 
) 
) 


少な く /) 


人 @ SAVE 3D DATA 


図形 の デー タ を ディ スク に 記録 し ます 。 フ ァイル 名 を 入力 し , ディ スク を ON に し て か ら リ 


ク ッ ン シィ テ ュ テ 、 ノ ーー レ ま こい を と 旧 目 ど ーー 
クー ン キ ー を た た く と 転送 を 開始 し ます 。 


@ る WORK 1 


行 し ます 。 WORK 1 は 新規 に デー タ の 作成 を 行なう の に 対し 。 WORK 2 は 


\ ン 


72 


[11 


人 で LOAD 1 

デー クタ を ディ スク か ら 読 み 込み ます 。 保存 し た と き の フ ァイル 名 を 入力 し , リタ ー ン キー を 
た た く と 転送 を 開始 し 。 転送 中 は デー ク の ステ ッ プ 数 も リア ル タ イ ム で 表示 され ます 。 (前 
の デー タ は 消え ます ) 
価 LOAD 2 

デー ク を ディ スク か ら 読 み 込 み ま す が , WORK 2 と 同様 に , 前 の デー タ に 連結 し て 読み 込み 


ます 。 (区 5-7) 
WORK 1 
LOAD 1 


以前 の デー ク を 消し て 最初 か ら 入力 


0RK 2 
LOAD 2 


以前 の デー クタ を 生か し , つなげ て 入力 


@LLIST 3D DATA 
プリ ンタ に XX。Y。Z 座標 の 順 で デー タ を 印字 1 


3 面 凶 モー ド 


メイ ン メ ニュ ー で WORK 1 か WORK 2 を 選ぶ と この モー ド に 入り , 3 面 図 を 描画 し , 入力 
1 ( 図 5-9)。 座標 と 3 面 図 の 位置 関係 は 図 8 の よう に な っ て いま す が , 第 4 章 で 述 
べた Y と ZZ の 位置 と は 反対 に な っ て いま す の で 注意 し て くだ さい 。 こ の プロ グラ ム で は ,。 え 


デー タ の 入力 は , 簡単 な 立方 体 の よう な も の で し た ら デ ィ ス プレ イ を 見 な が ら で も 可能 で す 
カ :。 あら ヵ レ め 3 図 を 用 意 し , ブイ スプ レ イ の 3 面 図 と 比較 ・ 確認 し な ヵ ぷら 作業 を 進め た ほ 


724 5 竜 3 次 元 実用 プロ グラ ム 3 題 一 一 一 一 一 一 一 ーーーーーーーーーーーーーーーーーーーーーーー 一 


正面 図 側面 図 


(平面 図 


+Y 方 向 


(側面 国 ) 
X,Y,Z の 最大 値 は 
それ ぞ れ 土 110 ま で て で. 
この 寺 団 で て デー タ の 
入力 を し て くだ さい , 
画面 中 央 (中 心 ) は 0 


( 図 5-8 3 面 図 の 位置 関係 
@ PENSET … * 


BEEP の 軽い 断続 音 と と も に ぐ 印 が それ ぞ れ の 入力 モー ド を 移動 し 始め る と,「 入 力 し て 


だ さい 」 と いう 合図 で す 。 


[ 天 キ ー を 押す と , ぐ 印 は PENSET の 位置 で 停止 し , 点 の 座標 入力 で す 。X, Y, Z の 順 で 
座標 値 を 聞い て きま す の で , 順に 入力 し ます 。 入力 ご と に 「 ピ ッ 」 と 入力 確認 の 音 が で ます が , 
入力 値 が 土 110 を 超え る と 「 ビ ピー」| と いう BEEP に な り 再 入力 と な り ま す 。 


と コ [ プ セレ > 一 に ユイ 、 攻 ュ > 
は 線 を 引か せる キー で す 。 ひ と つ 前 に 入力 し た 座標 


ナ る 新座 標 値 ま | 


で 線 を 引き ます 。 こ の キー の 入力 を 繰り 返す と 。 次 す 。 ゅ ら っ た ん 線 
を 切っ て , 新た な 位置 か ら 描か せる と き は ,。 PENSET の 


PENSET は ペン を 上 げ 。 指定 され た 位置 で ペン を 下げ , 点 を 打つ こと を 意味 し 。 DRAW ! 


PENSET RAW を 使っ た 例 と し て , 図 5-9 の 三角 柱 の デー タ を 図 5-10 に 入れ て あり ま 


マ 入力 の 確認 また は 練習 


725 


5f2/7 1 


QQQQQGQQQX デ 
QRQQQQQQQ~ 


間違え て 入力 し て し まっ た と き は , 国 キ ー を 押す と カウ ント が ひと つ 戻 る と と も に , 3 画図 
こせ ー ーー 了 フラ て は ーー ァ 3 7/ ャ ノ . 民 
に 打 四 と に ラル (こと ある ゝ は 線 が 消 あ すさ この キー を 押し 続け る と , さら に カウ ン [ 
が 戻り ます の で 。 任意 の と ころ か ら の 再 入力 が 可能 で す 。 


MA ウ 0 肖 連 WW9tX5G 実 用 ロ ジウ 3( 順 (ーー デー デーーーーーーー む ト ッ ュ ョ ュ ーー 


価 MIMAIN MIENU …… BS 

BS は | と |] パッ クス ペー スキ ー で す 。 この キー を 押す と メイ ン メ ニュ ー に 戻り ます 。 入力 し た 
デー タ の 保存 や 印字 また は , 立体 図 描画 の アク ショ ン モ ー ド へ の 移行 は に | キー 経 貼 で 行ない ま 
記 


呈 省力 的 入力 法 WALL & CIRCLE 


実際 に や っ て みる と すぐ わか り ま す が , PENSET や DRAW の 点 や 線 だ け で 。X。 Y。 の 
3 座標 値 を 入力 し 続け る こと は , 大 変 骨 の 折れ る 作業 に な り ま す 。 も っ と 大 型 の シス テム で も 。, 
この 点 は 課題 らし く 今 だ に 決め 手 と な る 入力 法 は 確立 され て いな いよ う で す 。 

本 プロ グラ ム で は 2 つの 簡易 入力 法 を 取り 入れ まし た 。 あ ら め ゆる 場合 を 想定 する と , こ の 2 つ 
の 入力 法 だ け で は 対応 し 切れ な く な り ま す が 。 その と き は PENSET と DRAW の 入力 で 補っ 


@⑯ WALL …… W 
連続 し た 壁面 の 入力 が 容易 に で きま す 。 間 取 図 な どの 立体 図 を 入力 する とき は 特に 威力 を 発 
揮 し ます 。 
キー を 押す と , 入力 し た い 壁 の 断面 の 形 が 3 面 図 の うち どれ に 対応 (投影 ) する か 聞い て 
きま す 。 平面 図 を 指定 し た 場合 に は , 壁 の 高き (Z 1, Z2) は どこ か ら ど こま で か を 求め て きま 
と れ ぞ れ の 値 を 入力 し て くだ さい (正面 図 を 指定 し た と き は 瑞 行 を , 側面 図 の と き は 
。 以後 、 平面 図 入力 を 前 提 に 説明 を 続け ます )。 


次 に , 壁 の 出発 点 の X, Y 座標 を 聞い て きま 


で 
名 

Na 
に 
ーー 
1 
がい 
り し 


す 。 
を 求め て きま す の で , 前 記 の DRAW と 同様 , 線 を つなげ る 要領 で 入力 を 続け ます 。 デ ィ ス プ 


4: 平 面 還 入 力 
B : 正 面 囚 入 力 
B C : 倒 面 劉 入 力 


( 図 511 WALL の 3 面 図 対応 列 ) 


レイ の 平面 鐘 に は , 入力 する た びに 避 の 断面 
が 描画 きれ, 入力 値 の 確認 が 行なえ ます 。 間 
違え て し まっ た 場合 は , X 座標 入力 時 に キ 
ー を 押し て くだ さい 。 間 條 えみ た 線 が 消去 る れ 
再 入力 に な り ま す 。 

入力 すべ き 胡 が 終わ っ た ら , END を 意味 
する [E] キ ー を XX 座標 入力 時 に 押し ます 。 す る 
と 座標 計算 が 始ま り , 完成 され た 3 面 還 が 描 
画 さ れ ま す 。 描画 が 終わ る と OK か どう か の 


確認 が 入り ます の で , 図 か 国 で 答え て くだ さ 


い 


ロ 


いら 。 NN を 押す と , 描画 され た 壁 の 三面 図 は 消 


な お , 高 さ (ZZ1,Z2) を 求め て きた と き に 
同じ 数 値 を 入力 する と , 壁 の 幅 が 無く な り ま 
す の で , 高 さ が 一 定 の 連続 し た 線 の 入力 に な 


り ま す 。 


72Z 


VIEW ? 
壁 の 断面 形 が , 三面 罰 の うち 
どの 面 に 対応 する か を 入力 


HEGHT/T0Z1 ?7 
HEGHT/FORZ2 ? 

違 の 高 さ は どこ か ら (Z 1) 
と こま で ( Z 2) か を 入力 


WIDTH X ? 
DEPTHY ? 
水平 座 電 , 自 行 座標 
を 入力 


入力 は 終り か ? 


座 垢 計算 
描 再 (三面 囚 完 成 ) 


RETURN 


※ こ の フロ ー は 平面 図 を 指定 し た 入力 の 場合 
色 の 面 を 指定 し た 時 は , XY, Z の 入力 類 序 が 
変わ り ま す . 

痢 MM キー は 入力 2 回 目 か ら 有 効 . 


( 図 5-12 WALL モー ド の 入力 手順) 


28 5 草 3 次 元 実 肌 プ ログ ラム 3 串 一 一 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 


(写真 5-23 WALL の 入力 例 ) (写真 5-24 WALL の 立体 図 描画 例 ) 


これ は ,。 円 ある いけ は 円柱 の 省力 化 モ ー ド で す 。CIRCLE (円 ) と し て あり ます が 。 正確 に は 多 
角形 入力 と 解 生 し て くだ さい 。 
[CH キ ー を 押す と , WALL の と き と 同 様 。 円 の 形 が 3 面 図 の うち どの 面 に 投影 する の か 聞い て 


終了 位置 を 決め ます 。 普通 の 閉 


ヽ 朋 昌 


きま す 。 1…3 の うち ひと つ を 指定 する と , 次 は 円 の 職 
じ た 円 の 場合 は 0' と 360' を 入力 し ます 。 入力 する 角度 を 変え 0 る こと に より , 任意 の 円 弧 が 設 


定 で きま す 。 た と えば , 左 半分 の 円 弧 の 場合 は 90′ と 270', 右 半 分 の 円 は 270" と 450' と いう 


ョ ュー 一: ー ー テリ ー ン コ ーー gr + ヒ ディ ーー 三 ゴメ 人 
具合 で す 。 こ の よう に 。 好 き な 角 度 を 持つ 円 弧 を 指定 で きま っ ] 開始 角度 が 終了 角度 より 大 
に 2 ーー ーー ME っ に ー 7 ルー テヒ ピーン ミ ヽ コ ュー- 
ご な る 入 力 値 は 受け つけ ませ ん 。 この 指定 を 行 な の 5 中 に 指定 ミ れ た 円 弧 が 表示 さ 
れ ま す 

次 は 


: 平 面 囚 入 力 
: 正 面 久 入 力 
: 側 面 罰 入力 


の Q の ち 


( 図 5-13 CIRCLE の 3 図 対応 例 ) 


729 


DIVIDED ? 

と , 円 を 何 度 ずつ に 分 ける の か を 聞い て きま す 。 これ に より , 多角 形 の 角 数 を 決め ます 。 前 記 
で 0 一 360'" の 閉じ た 円 を 指定 し た と き に , ここ で 45′ を 入力 する と 正 8 角形 。 15 に する と 正 
24 角形 に な り ま す 。 小 さい 角度 を 指定 する ほど , 角 数 の 多い 多角 形 に な り ま す が , その 分 大 量 
に スモ リ を 消費 し ます 。 画面 上 で は , ドッ ト の 分 解 能 の 関係 ちあ っ て 16 角形 ぐら いて 円 に 見 え 
て きま す の で , ノ モ リ 効率 を 考え て 適度 の 角度 を 指定 し て くだ さい 。 メ モリ の 消費 ステ ッ プ は 
多角 柱 に し た 場合 。( 角 数 +1) 4 と な り ま す 。 こ の 入力 時 に 団 キ ー を 押す と , 円 の 開始 角度 の 
指定 か ら や り 直 すこ と が で きま す 。 

以上 の 設定 が 終わ る と 次 は , 円 柱 の 高 ほ , 中 心 座標 , 半径 の 入力 で す 。 

TO Z12 FOR Z22 

と 円 柱 の 高 さ を 求め て きま す の で ,。 それ ぞ れ 入力 し ます 。 円 柱 で は な く , た だ の 円 に し た いと 
き は 。 選 1, 2 と も 同じ 数 値 を 入れ て くだ さい 。 

挫 に , 

WIDTH/CNT.X ? DEPTH/CNT.Y ? 

の 表示 と な り , 円 の 中 心 座標 を 聞い て きま す の で , それ ぞ れ 入力 し ます 。 

最後 は 半径 を 入力 し ます 。 3 面 図 の 範囲 を 超え る 大 き な 半 径 を 入れ る と 再 入力 で す 。 

この 入力 を 終え る と, あと は 自動 的 に 円 の 座標 が 計算 され , 3 面 較 に 円 が 拉 画 きれ ます 。 

WALL, CIRCLE と も に , 平面 図 入力 を 例 に あげ 説明 し まし た が , 正面 図 , 側面 図 の 場合 も 
株 行 な っ で くだ きら: た PCSY。 2 

文章 に する と 。 と て も めん どう な 感じ に 受け 取ら れ て し まい そう で す が , 実際 に や っ て みる 
と すぐ に 慣れ る と 思い ます 。 複雑 な 曲面 を 持つ モデ ル 以 外 で し た ら , この 2 つの モー ド で た い 
て い の も の は こなせ ます の で 。 積極 的 に 活用 し て くだ さい 。 


730 5 意 3 次 元 実用 プロ グラ ム 3 題 


正 
面 
VIEW ? AN 
多角 形 の 形 が 三面 図 の う ち 問 
どれ に 対応 する か を 入力 面 
| 
90" 
ANGLE/TO ? 
ANGLE FOR ? 180 O" 
円 の 開始 角度 と 終了 角度 を 
入力 - 
270 
この 場合 0' 一 270' 


を 指定 し た と き の 倒 


DIVIDEDCIRCLE ?7 
何 度 き ざさ み の 多 角形 に する 


か を 入力 DIVIDED =45" 


角度 の か わり に N を 入力 
する と 再 入力 に な り ま す . 


HEGHT TO Z 1 7 
HEGHT FOR Z27 

( 高 さ は どこ か ら ど こま て で か 
を 入力 ) 

WIDTH CNT.X ? 

DEPTH CNT.Y ? 
(中 心 の X, Y 庶 哲 を 入力 ) 
RADIUS ……… 7 

( 
高 さ の 違い は 
ある か ?7 


Z1 ぐ >Z2 


( 図 5-14 CIRCLE モー ド の 入力 手順 


&K 2 邊 


テー 


写真 5-25 CIRCLE の 入力 タ 


(写真 5-26 CIRCLE の 立体 図 】 


Rn 


737 


較 アク ショ ン モ ー ド 

人力 ほれ た 3 次 元 デ ー ク を 加工 し , きま ざま な 角度 や 大 き さ の 立体 図 を 描か せる の が この モ 
1RKG2 

メイ ンズ メス ニュー で 「AC 2 の] と 信 力 する と , 図 5-15 の 画面 に 変わ り ま す 。 右 上 の 十字 線 の 入 
っ た ワク は , 現在 の 視線 の 位置 と 立体 了 図 の 大 ほ きる を 表わし ます 。 


19J HOCTcUH 


101007I74 
剛 町 馬 攻 89 
j 


! ! の 2 
9 007 日 : 


その 下 の 2 行 は , SPIN (左右 の 回 転 角 ), TILT (上 下 の 回 転 角 ) の 表示 で す 。SPIN の 初期 
値 は 90 で , この 値 は 真正 面 か ら 見 る 形 に な り ま す 。0' て 右側 , 180' で 左側 , 270' て 裏側 か ら 
見 る こと に な り ま す 。TILT は 0' で て 水平, 90' で 真 上 か ら と な り ま す 。 

角度 や 大 き さ を 変化 さき せる た め に は , テン キー, カー ソル キー, ファ ンク ショ ン キ ー の 計 16 

ー を 使用 し ます 。 こ れ ら の キー は 。 押し た 回 数 分 だ け 角 度 や 大 きる の 比率 が 加算 まほ た は 減算 


され る ろ 仕 組み に な っ て いま す 。 


732 5 章 3 次 元 実用 プロ グラ ム 3 


[Al[6] SPIN (左右 の 回 転 ) の 角度 を 与え ます 。1 回 押す ご と に 22.5 度 ずつ 変化 し ます が , 
| PF 10 |, [PF5 | で こ と の 単 1 TA を 調 事 交 で きま まあ 


DTPHOT Ui 『SJ RGTiOHH 


1 

4S(AE 8 PO5IIOH 6 

。SPIlls 22.5 

/ TJLTs 22.5 
人 AE.017s 22.5* 

6 SCGLE 01fs 29. 区 

: 人 TION REI 人 IIOHees ET 

問 介 衣 M83 LUDO9 た 】 

関 LU AD | HADCOPeeH 

( 図 5-16,.17 SPIN の よう っ 3 
図 [8] TILT (上 下 の 回 転 ) の 角度 を 与え ます 。 [PF10」, [PF5] で , 一 度 に 変え る 角度 を 調 
整 で きま す 。 


DRCT 0 


0544E SFSIIOI 1 


SPlill= 67.5 
ITILT= 67.5 


人 AE 01 22. 
AE 0 29.07 


胡 IIMeeees RE 
衣 加 困 誠 eS 


受 0.(frr 


( 図 5-18 こ 19 TILT の よう す ) 


733 


[上 立体 図 の 大 きる が 調整 で きま す 。 1 を 押す と 小さ く な り , 7 は 大 きく な り ま す 。 一 度 に 
変え られ る 大 きる の 比率 は [PF9], [PF4] で 調整 可能 で す 。 


9 の し 23 休 由 


96E2 PIT 6 455E2 首 全 


・ 9PI 有 ls 675 5PIls 975 
! ILf= の 5 TILTz 225 


(リコ ゴン た 』 前 EE 2 
| SE だ 2 の 色 UTM の 


公 T 大 rec 必 f IIOOOUM| 
随 町 大 導 B9 DO 


受 7 0097 H 


( 図 ぉ -20,21 天 ほ きる の 変化 ) 


と 視角 が 狭く な り , 9 で 広く な り ま す 。 前 記 の [1 [ 思 と 組 
ます が , 視覚 を 広げ 過 


yt 
い 

No) 
yu 
仙 
志 
(Y 
rl 
ご 


も SE を FIT 


SPIli=6 
! 


TILT= 25 


giE TE 2 
SME 6T'=2. 角 


-E 和 Eee 下 
記 GUOO た ) 


本 飼 ・ H 


久 HW に me ET 
回 下 … BS5 


WOP・ H 


( 図 5-22.23 


734 5 章 3 次 元 実用 プ ログ ラム 3 題 


ーー 視線 の り . 7 四 を 変え ます 。 立体 図 を 大 きく する と 3 図 の 周辺 は 画面 内 に お さま 


た 部 分 を 中 央 に 持っ て くる こと が で きま す 。 


4 SRLE は FO5IIWI 6 


Pills 7.5 
ILT= 88.5 


LE 01 22.5! 
SWE OTs 29.067 


IIUOCLUOUI 44 6 
癌 川 癌 上 E5 


0 COU」 


? 
$ 

・ 1 
LE TE 22.9 
SrE 0fE 29.K 


IM RI 
NRWUe 8 5 


HMD (0 H 
( 図 5-24.25 視 球 の 移動 


回 前 記 の 各 き イトー (2 R 描画 さ (ーー せ る 角度 度 で ンク 大 き ニ を 設定 と 終 シダ 7 ら ) リ タ こっ 。 ク キ デー で 描画 開始 


回 メイ ン メ ニュ ー に 戻り ます 。 


団 ハー ドコ ピー を 取り ます 。 


この プロ グラ ム で は 。X,。Y,Z の 3 座標 を 1 ステ ッ プ と し て 。 700 ステ ッ プ (2100 デー タ ) 
まで の 入力 お よび 描画 が 可能 で す 。 入 力 中 は 3 面 図 下部 に ステ ッ プ 数 が 表示 る きれ て いま す の で , 
700 を 超え そう に な っ た ら 。 い っ た ん ディ スク に デー タ を セー ブレ し, WORK 1 か ら 入力 の 続き 


を 行なっ て くだ さい 。 次 節 で 述べ る ハイ スピ ー ド バー ジョ ン の プロ グラ ム で 。 これ ら の デー タ 


に 


を LOAD 2 で 連結 すれ ば , 最大 1200 ステ ッ プ (3600 デー タ ) まで の 描画 が で きま す 。 


な お , デー タ を ディ スク か ら 入 力 し た と き に ,。 そ の 3 面 図 を を 描画 ミ せ る 場合 は 。 WORK 2 を 


\ 
> リリ 


E し て くだ さい 。WORK 1 に する と 。 せ っ か く 読 み 込ん だ デー タ が 消 る れ て し まい ます 。 


735 


但 エラ ー の 処理 


700 ス テッ プ 以 上 の デー ク を 入力 し た り , Drive Not Ready 等 ディ スク 関係 の エラ ー が 発 
生 し た と き は , メッ セー ジ を 表示 し て メイ ンス メ ニュー に 戻り ます 。 エ ラー の 原因 を つか み ,。 そ 
れ を 多 理 し た うえ で , 再度 メイ ン メ ニュ ー か ら 始 め て くだ さい 。 

人 得 ディ スク が 無い 場合 の 実行 


し た が , カセ ッ ト テ ー プ で の 実行 も む 
ィ ス クベ ペ ベーシック が 無い 分 フリ ー エ リ 


9 


ディ スク を 使う 前 提 で プロ グラ ム の 説明 を 続け て き 


さ 


ろ ん 可 能 で す 。 テープ 使用 の ROM モー ド の 場合 は , 
ア が 広く な り ま す の で , 描画 ステ ッ プ 数 が く 確保 で きる メリ ッ ト も あり ます 。 プ ログ ラム 先 
頭 の CLEAR 文 を , CLEAR, 必 H 7 FFF と し , 1810 行 の 配列 を 大 きく すれ ば , さら に デー ク 
が 入り ます 。 な お , プロ グラ ム 内 の 「DISK」 の 文字 は 「CASSETE」 に 置き 変え て くだ さ 


読む だ け で よく わか る 山海 党 発 行 


ン ペ ーー ンク Ni 
小笠 原 一 ・ 柳 谷 浩三 著 /B5 変 形 220 真 1800 円 
人 


く 使う 命令 122 語 を 選び , 意味 と 使い 方 を 説明 し て いる 。 ま た , の 3 
の 機能 を 理解 し て も 、 一 本 の プロ グラ ム を 作る こと は 大 突 を こと で す 。 本 書 で は , プ 
と ・ 


甘 本 的 な 命令 ・ よ 


ログ ラム の 組み 立 方 や 設計 の ポ イン ト に つい て も 説明 し て お り ま す 。 応用 と し て 名 
刺 管 理 プ ログ ラム と 汎用 集計 プロ グラ ム の 2 本 を 収載 し て いま す 。 
DASMGMGRS23 @ サ ブフ ルー チン 
@ 出力 命令 @ 表示 ・ 印 刷 の 制御 
@ 入力 命令 @ フ ァイル 処理 
@ デー ク の 型 と 表現 @ コ マン ド と は 
@ 証 御 命令 @ 応 用 尊 


736 5 章 3 次 元 実 用 プロ グラ ム 3 順 


(写真 5-30 て 32 シェ ー バ ー の 措 画 例 ) 


(リス ト 5-2 3D WORLD Ver2) 


【 File Hamg : 3D 販 02 】 


3 に eg る D MOURKLD 


CL5S: IDTHB の , 2 の 9: CLEaR の の ,%H6FFF : DEFSNB 人 -Z 

GBDSUB 181 の 

CL5S: CLX= ニ 444: し Y ニ 199: レム ロー ニコ: ビアー. フェ じ X ニ 222: じ Y= ニ 99 

DN EEY(6) BUSBUE 4 る 4 の :DN じ EY(9) GODSUB 444g:UN EEY(4) BOSU 
E 4469 

DN EEY(1 の 9) GBDSUB 4 ラ 89:DN じ EY( 弓 ) BUSUB 4419 

じ EY (6) UN : ラニ 1 : ビニ 5: BUTD 154 の 

GUSUB 2 フ 6 の : BUSUB 19 の の : じ UNNEPT (222 。) (222 199) 一 (の ,199) 一 ( 
の ) 一 (444 の) 一 (444 。99) 一 ( の 。99) 。 う 

LTNE (の ,49) 一 (444 。49) 。PSET 。 1 : LINE( 111 の) 一 (111 ,199) ,PSET 。 1 
LINE (の 。 149) 一 (222 。 149) ,PSET 。 1 : LTNE (3 うう の) 一 (3 ろう,99) ,PBET 。 1 
: RETURN 


^ 基 穫 基 天天 区 基 天天 天天 MHRE に TNG 区 革 天 基 甘 基 基 基 英 基 基 天天 区 

GUTOU 12 の の 

じ メ ニュ ユマ う = じ Y ニ 1 4 ワ 

ロニ 1 そつ 2 : 王 ビニ ー1 。 1 71 : 5GD=1 。 ワク フフ ア : D= ワ フウ の の 

1= 己 IN (5G じ ) =: じ ヒ 1= じ 0 (SC ) : ら 2= ら IN (SD ) : じ 2=C じ DS (SD ) : RETURN 
FOUR に = ア TO 18:LUCATE 58。 じ に :PRINT SPACE も (22) 』 :NEXT ド 
CULURK 4:LUCATE6 の , 9: PRINT "PEN GET・・・・・・ ※ げ 


LUCATE ら 9 。 1:PRTNT"D 0D 因 ・・ーー・・ /" LOCATE6g ,2: PRINT"I 1 5S 
Go が oeiio Ge 

LUCATE 6@, さ :PRINT "RELTNE・・・・・・・ KR" 

LUCATE 69,4:PKINT"MRLL・・・・・・ーー ・ W" 

LUCATE 69,5:PRINT "CIRCLE・・・・・・・ C* 


LUCATE 6 。6: PRINT"MRIN MENU・-・ B 8" 

LUCATE 2 つ 9。19:PRINT "STEP/NEXT"』 CU+1 3 :FDR 1=g TO 6:BEEP 
: BEEP の :D$=INKEY ま 

LOCATE 7 フ 6,。T:PRINT"< く ":FUK TM=g TU 59:NEXT TM:LDCATE 7 ら 。+ 
:PRINT" " 

*BEEP BE 

IF D ま ="%"THEN LUCATE フ 6。g:PRINT"< く ": BOTD 1389 

IF D ま ="/"THEN LHCATE 76。1:PRINT"< く <": BHTU 1389 

IF D ま ="H"THEN HARDC1 


paQe 


1 3 の 


ささ 
1 さ 4 の 
1.3 コ @ 
1 さ 6g 
1 さ 7 相 
138g 
1 ふさ 9g 
14⑦ 
141 の 
142 の 
143g 
144@ 
1 4 コ 5 
1469 
147g 
14 ヨ 9 
149g 
15@ 
151 中 
15S の 
153g 
154 
1 ココ 9 
1 コ 69 
1 ロ 7 の 
15 ヨ 9 
159g 
169 の 
161g 
1 6 
1 6 う 3 の 
16 う ロロ 
1 ら 64 の 
1 65g 
1 66 
1679 
1 6 女 
1 6 ヲ ウ 


【 File Nams : 3DMLD2 ] 


EZ ング 73 し ニニ EE 


D ま ="RK"THEN LUCATE 76。 さ PRINTVTSS く TsGUTO 13B@ 


IF 

IF D ま ="M"THEN LUCATE 76。4:PRINT VS く P EGOUTOU 138 
ITF D ま ="M"THEN LUCATE 76。SsPRINT VSS く STsGUTO 1 さ 38 の 
IF D ま ="C"THEN LUCATE 76,S:FRINT VSS く VsGBUTO 138Bg 
IF D も = じ HR も (SH) THEN BEEP の :GUTOU 1540 の 


NEXT IiGBOTOU 17 の 
GUSUB 437g: CU= ニ COU+ 1 
IFD$="R"THEN CH ロ =CUー1 : GUGUB 全 の 99: GUTU1S ウ の 
IF D ま ="M"THEN BUSUB 214 の 9:GUTOU 12 の 

IF Ds="C"THEN BUSUB 3639: COU=CUー1 : GOUTU1 15@ 
ITF D ま ="M"THEN GUSUB 91 の :GUTOU 12 の 9 

GUSUB 4 さ 7@ 

LUCaTE 5。 日 : INPUT "MIDTH.X 
ITF F=1 THEN 144g 

MX (CU) =VQL (B ま ) : IF D 和 も ニ リリ 


"*E 和 ま : GUSUE ふさ 2 の の 


THEN MX(COU)= ニ MX (CO) +1 の の の 


LOCTE SB ヨ ,9: INPUT "DEPTH.Y "、B も > BUSUB 32 の 
MY (COU) =VaL (BE も ) = ITF F=1 THEN 147@ 
LUCATE SB ヨ 。19: INPUT "HEGHT .Z "3B 和 も : GUSUB さ 2 の の 
MMZ (CU ) =VAL (B ま も) : IF F=1 THEN 149g 


ITFD$="*※"THEN GUSUB2 ウ 2BELGE GUSUB 1929 
GUTHU12G ウ 

" 半 基 天天 天天 MRTN MENLU 区 区 天 基 基 交 共著 基 基 

GUSUE 19 の 6 

UN ERRUR _ GOTU 1769 の 

CULUR 7:LUCATE 6g。9:PRINT"3D ACTEUN・・・・・・ 人 ビ " 
LUCATE 69。1:PRINT "SAVE 3 さ D DQTA・・・ Sa" 

LUCATE 6g。 う :PRINT"MURE 1 (NEM) ・・・ 四 1" 

LUCATE 69。4:PRINT"MURE 2 (CUNT)・・ MM2" 

LUCaATE 6g。6:PRKINT"LURD 1 (NEM)・・・ し 1『" 

LUCaTE 6g。7:gPRINT"LURD 2 (CUNT) ・・ L2" 

LUCATE 6 9:PRINT"LLIST 3D DaTA・・ LD" 

LUCATE 6g。1 の 9:PRINT"E_N_D ニー ニー コー 

LUCATE 69。19:PRINT "STEP/NOUM" = CDs 

GUDSUB 4 ミア 

LOCEaATE 6 。12: INPUT D も 

IF D 和 を も ="C" THEN GUSUB 2259: GUDSUB 227g 

1F D も =" ら 人 a" THEN BUSUB 4529 

IF D を ="M2" THEN BUSUB 117 ウ : GUSUB 2 の 9 の : GUSUB 12 の の 


pa0e3 [Fiig Mamg i 35ML02 1 


17 の の IF D 和 も "170 THEN GOSUB 117 の : GUGUB 183 の 

171 の IF D 和 も =" リ L1"7 THEN BUSUE 462 の 

172 の 9 TF D も ="L2 リ " THEN GUSUB 464 の 

173 の ウ の IF D 和 も ="LD" THEH BUSUB 425 の 

1735 1F D 和 ま ="E ビ " THERH FURK ビ Y=1 TO 6:EEY(EY) UFF:NEXT:END 

174 の 9 GOTOU 166 の 

1 / ら のり (ーー ここ ここ ここ ご EKRODUR 

176 の CL5S: BEEF : IF ERKK= ワ THEN PRKINT" コ レイ シル” ョ ウ テー の) バイ リフ センリ ュ ェ ピロ ニ ビ 
0 ロー1 : GUTU 18 の の 


1779 の 1F ERK= ニ 72 THEN PRKINT" テ ~ ィ ラフ カ " UFF デ デ ス リョ:BUTU 1 の 
178 の IF ERKK= ニ 6 うろ THEN PRKINT "ファ イル カ " ミリ カリ ッ マセ フリ ョ = GUTU 1 の 9 
179 の ITF ERK= ニ 64 THEN PETINT "ファ イル ノ ニシ ト ュ ウト ウロ フク テス" ョ GUTU 1 の 
1 ヨ Hg の PRINT" メニ ュー ニニ モト “リラ タリ": RESUITE 154 の 

181 の ウ DIINM MX(7 の の ) 。MY(7 の の ) , り Z (7 の 9) : EETURN 

1 ロジ の ーー ニー テー ラニ ーー ニニ ーー Y/N MDREE 1 


183 の 9 IF CO0< ニ 1 THEN 188 の 

184 の LUCATE 6 の g。12:PKINT "と yoOu =ur “で (Y/N) " 

185 の 9 じ も = ニ INEEY 和 も = エ F じじ 和 も ニ リ イ アリ THEN 188 の 

186 の IF じ 和 ま ="N" THEN LUCATE 6 の 9。12:PRKINT SPACE も (22) : GUTU 1899 

187 の 9 の GOUTU 1859 

188 の 9 ERQSE MX 。MY。MZ: GUSUE 181 の : じ 0D= ウ : GUSUB 111 の 9:GBOUSUE 1299:GUT 
ロ 189 の 

189 の 9 RETURN 

19 の の LINE(445。 の ) 一 (639 。 199) 。PSET 。。BF : KRETURN 

191 の 

192 の "区区 天天 天天 区 DRUMI 贅 殖 区 区 区 区 基 基 交 

193 の IF CU= の THEN ヒロ =1 

194 の WMX 三 内 X( ビ ロー1 ) : MY= ニ MY ( ビ ロ ー1 ) = 内 Z 軌 7 (CUー1 ) : IF MX>= ヨ の 9 THEN MX ニ M 
メー1 の の の 

195 の ソ メ X ニ MX (CU) : TF ソ メ >= ニ ヨ 四 の THEN ソ X= ニ VXー1 の の 

196 の LINE (MX+1 1 1 。 一 (中 アキ 。 4 王 ) 49) 一 (VX+1 1 1 。 一 ( 罰 Z (CU) *. 45) +49) ,PSET 


,MC 

197 の LTNE て (MX+111 。 一 (MY-4 王 )+149) 一 (VX+111 。 一 (MY (CD) *.45)+149) 。F5 
ET 。MC 

198 の LINE (MY+ さ ささ 。ー (MMZ*。 4 王 ) +49) 一 (MY (CD) + う ささ 。ー(MZ (CD) *. 45) +49) 。 
PSET 。MC 


1999 LUCATE 3 ヨ 。19:PRINTCOs 
RKETURKN 


740 5 章 。 3 次 元 実用 プロ グラ ム 3 題 


{File NamE : 3DML02 ] 


* 共 天 基 基 基 天天 区 基 PUTNT 共著 天天 基 間 基 基 天天 


PSET (MX (CO) 一 1 の の +1 1 1 一 (MZ (CO) *.45) +49。MC ) 
PSET(MX (CO) 一 1 の + 1 1 1 。 一 (MY(CO) *。45)+149。MC) 
FSET (MY (CD) + さ ささ ミィ ー(MZ (CU) *。45) +49 MC) 
LUCaTE 3 ,19:PRINTCOs 

RETURN 


" 基 共 天天 REL TINE 共 共 基 基 

IF CHS=1 THEN GUGUB 111 の :CU= の : RETURN 

JJ=COU: GUDSUB111 の 9:FUR CU=1 TOU JJi IF MX(CO) と = ニ B ヨ の 99 THEN GUSUE 
292 の 9 の : BUTU 213 の 

BUSUB 193g 

NEXT CO CH=CU-1 : KRETURN 

"天天 MLOG 天天 共 天天 天天 共 基 

IF CU= の THEN 219 の 9 の ELGE CU=CU-1 

MC= の : IF MX(COU) := ヨ の の THEN GUSUB 2 の 2 の 9: GUTU 18 の 

GUHSUH 193@g 

CH= ビ ロー1 : MC ビ = コ : IF C ロ = ニー1 THEN CU=g 


Z ビ = ローX CC 1 *G フ 2ーYxG 1 *G ロ 2 コー7※ じ 2 ミロ Xー ニ (D※( 一 X※ 避 1 上 Y# じ 1) /Z じ )+CXsGY= 
CY-ー. 449 コ (DX( 一 XX じ 1X じ フーYx ロ 1 C+ZxG2) /Z じ ) : KETURN 


* 北 基 天 天天 区 天天 CTTUN 天天 天天 基 基 基 
BUSUB 4 ミ 79: BHTU 2270 

CX= ニ 222: じ Y=99 : HM=19: D=15 の の : 5 ビ ニー1 . 7 の 8: SD=1 . 57 の = SG1=SIN(SC 
) : C1=CnS (SC) 

EEY(1g) UN:KEY(5) UN: に KEY (9) ON: KEY(4) UN: 2= ニ STN (SD ) : C2= ビ 0 
(SD ) : RETURN 

BUSUB 1999:LINE(445, の ) 一 (6 ミ 9 。 199) 。PSET 。4 ,BF: CDLUR12: SGYHBO 
し (467。1) 。"D RETIUN" 2。1 。1: BYMBDL (4655。1) 。" ラ D ACTION" 。2 


5 一 9 よう 
ふ 


BUSUB 443 の gz: GUSUE 448g:LTINE(46g 。 ワ 96) 一 (62 ウ の 。 12 の ) 。PSET 。2。E 
LUCATE 58.8:PRINT"% SCALE & PUSITUN "=:LTNE(46 の 。78) 一 (62 の 
, ヨ 8) ,PSET 。 1 ,B 

GUSUB 2529:LUCEITE 69.16:PRINT "ACTTUN・・・・・・ RET"sLOCaATE 6 
17gPRINT "MNTIN MENU・・・ B S"sLUCATE 6 の 9。19:PRKINT "HARD COPY 
PE 生 。 日 『s 

台 多 INEEY 名 : TF 人 も = リ る"THEN UM= ニ UM+TUM* に EZ: BUSUEB 2 つ 52 の 


747 


30LD2 】 


File 


Ma 1 

2 ラウ 2 の TTF 明 凶 リウ ワリ THE ト UI4 モ UIF4ーU ト 4 を EZ : GU0SUB 252 

ノ 2 る ITF 本 モリ アリ THE ト NH D=D+D テ FEZs BUSUB 252 

タラ 4 の エエ F 月 生 三 リ 1 7"THEF ト RI D= ニ D ワ ーD テ ビビ Z : GU5SUE 252 

235 の 9 T エ F 申 も リリ "THE じじ + ォ ラ 。 14159/E 人 RG1=SIN(SC) :C1=COUS (SC ) : GUT 
ロリ 24g の 

Z36 の の 了 F 馬 三 "4"THEH 5 ビニ 5 ビー ラ . 14159/ だ 人 弓 1=SBIN(SC) : じ 1=CHS (SC) : GUT 
ロ 24 の 

2 う 7 の TTF ロ 生 = ニ "B"THEhH 5D= ニ 5D+ ラ 。 14159/ ヒ 52=5TIN(SD ) : C2=CHS (SD ) : BOT 
2Z48 の 

TIF 如 和 も リン "THEH 


ら D= ニ 5 リーラ 。 1 4159 ワ /:G2 ニ SIN (SD ) : C2=CUS (SD ) : BUT 


人 Q ま = ニ ビ HKR 多 (を H1 じ ) THEN じ X= ニ ヒメ X+49: GBDSUB 2529:GUTU 259 の 

24 の の TF まじ HR 多 ( 叶 H1D) THEN ビ メ ニ ビ メー4 の = BDSUB 2529:BUTU 25g 

241 の IF ま =CHR 和 (を 日 1 ビ ) THEN ヒマ = ニ ビ マー2: BUSUBE 2529: BUTU 2599 

242 の [F 人生 = ニ ビ HER 和 (を 日 1F ) THEN ビニ ビ マ + ィ 2 の : 5DSUB 2529:BDTD 2599 

24 う の IF 内 生ま ="H" THEN HARDC1 

244 の 1TF ロ 生 = ビ HR 条 (1) THEN BUSUB 2659:GDTU 2 る 1 の 

245 の 9 IF =CHK 和 (を HH の B) THEN ビ EY(19) DFF: じ EY (5) DFF: KEY (9) DFF: KEY 
(4) DFF : COLHRK 4:GDTD 1549 

2469 LUCATE 6@。1 ニ :PRINT "NGBLE DTY="s:PRINT USING" 提 提 。 社 "NgP 
RINT"C  "s 

247 の 9 LOCATE ら 6 の 。14:PRINT "SCALE ロ TY ニ " ェ :PRINT USTNG" 提 寺井 "Li =P 
RTNT" ア リュ 

248@ LOUCATE 6 の 。1 の :PRINT"G F 1T N ="::PRINTUGTNG" 提 電 提 振 。 蘭 "』 (SC/( 
. 14159/ . ) ) *ー1 

2499 LOCQATE 6 。1 1 :PRINT" 丁 了 L 丁 =":=PRKINTUSTND "電電 草 #。 提 "』 (SD/( マ 
1415 ワ / 1 ヨウ ) 9 の ) *ー1 

259 の 9 GHTD2 ミ 1 

251 の "ーーーーーーーーーー SENTER . SFALE 

252 の LINE(46g 。1@) (629。7) ,PSET 。 1 。EF 

25 う の ビビ X ニ 16/444*CX+46: TF CPX<46 の THEN CPX=489 

254 の 9 IF CPX>6 コ ワウ THEN CFPX ニ 62 

255 の じ PY ニ 6 昌 / 199*CY+1g:TF CPYZ1 の THEN CPY= ニ 1 

2569 IF CPY:7B THEN CPY= フ 紀 

257 の し INE(CPX , 1 の) 一 (CPX 。78) 。PSET , 弓 :LINE (469 ,CPY) 一 (529,CPY ) ,PSE 
T。55 

589 PP=(D/1 王 の g) * (1 の 9/ ロ NM) 

599 FOR ヒビ =2 TOD 5 STEP = 

ら 69 PX1 ニ = じ ビ メー ビビ xxPP: ITF PX1<469 THEN PX1=46g 


PY 1 = ビビ PYーCPGX2*PPs IF PY1< く 1 の THEN PY1=1 の 

26 さ 3 四 PY2=CFPY+CPG#2 つ PP』 ITF PY2>7B THEN PY2= ニ 7 

264 LINE(PX1 。PY1) 一 (PX2 。PY2) 。PSET 。CPS 。BE: NEXTIs RETURN 

つら 6 らら 切 "区 区 区 天天 区 区 ツ 1 選 WM いい ロレ に 革 導 基 基 共 天天 

2669 GUSUB 2769:LINE( の の, の) 一 (444。199) 。PSET。4。E:FUR 1=1 TO CO 

267 の IF MX(I)=: ヨ gg THEN 275 

ご 6 ヨウ X=MX(I) / 1 の 9: Y= ニ MY( 1 ) / 1 の の: Z ア =MZ (IE ) /1 の の: GUSUB 221 の = X1 ニ DX: Y1= 
QY 

うつ 69 IF MX( エ I-1 ) > の の THEN X ニ (MX( エ ー1 ) 一 1 の 99 ウ ) / 1 の 9 の ELSE X=MMX (エー1 ) / 
1 の 9 

27 Y=MY( エ ー1 ) / 1 9: Z ニ MMZ (エー1 ) / 1 の : GUHSUB 2 つつ 219: X=QX s Y ロ =QY 

271 四 IF (X 四 >)+(X 四 444)+ す (YO の の) +(Y の < く 199)+(X1 > と)+(X1 く 444)+(Y1 > の 
) す (Y1 ぐ <199) = ニー THEN27 ア 4 の 

マ /72 IF (XOEO QRND X1<) UR (Xg ウ >444 QRND X1> と 444) UKR (Yg ウ < の QAND Y 
1 の) UKR (Y の >199 AND Y1:>199) THEN BEEP HB: BEEP の =: GUTOU 27 の 

マ 73 の の GUGUE 79 ウ : GMRFP Xg。X1:GMQRP Yg。Y1 : GUSUEB 2 つ フ 9 の 

274 LINE(X。Y ウ ) 一 (X1 。Y1) 。PSET 。7 ア 

275 NEXT TGBUSUE 4 さ 7@: RETURN 

LINE (Kg. の 9) 一 (444.199) 。FPGET 。。BF:RETURN 


ええ じ し TPPTNG 区 共 区 区 区 基 基 
7 IF X1 の THEN XX=d: GHTH 2829 

< IF X1ECLX THEN XX=CLX: GUTOU 2829 
21 切 XX ニ X1 

ご 2 IF X1 ニ XX の THEN YY=Y1 : BHTU2869 
2 ヨ 3@ YY=Y1 一 (Y1-Yg) *(X1 一 XX ) /(X1 一 X の ) 
<4 IF YY く < THEN YY=g: GUTU 2B7 の 

< 日 5 ら g IF YYECLY THEN YY=CLY = GUTU2 ヨ 7 
269 X1 ニ XX:Y1= ニ YY: GUHTUD 289@ 

2 コロ 7 TF Y1=Yg ウ THEN XX=X1 =: GUTU 2 ヨ 6g の 

< は の 9 XX ニ X1 一 (X1 一 Xg)\※(Y1-YY) /(Y1-Yg) : GUTU 2869 
9 の RETURN 


ゼ ワ 1 人 切 大 区 区 区区 基 基 天天 人 し し 区区 区 基 天天 天天 天天 区区 

292 の BUSUBE 416 の =: IF じ ま こ "NPD THEN KRETURKN 

マン ワウ IF VaL(C じ を):4 UK VAL(C も ) く 1 THEN 292 
デ ウ 4 の の UN VaL ( じ ま ) GOTU 296 。 う つう の 。 さ 4 る の 

マウ 5 BUT ロウ ジロ 


[Fijig Hame : 30 02 


LUCATE 58。11:TNPUT"HEGHT/TU 71 ":B$:BDSUB さ 299:TZ=VaL (B 
る ) : TF F=1THEN 296g 
LOCaTE 58,12: INPUT "HEBHT/FDR Z2 "』B ま :GBUSUB さ 299:IF F=1 丁 
HEN 297 の 
FZ ニ VaL ( 王 名 ) : B ロ = ニ ビ 0D : B じ = の : GUSUB 3929: MX(CD) =MX (CD) +1999: GSU 
B 2 の 2 の 
CU=CO+1 : LDPaTE 58,14:PRINT SPC(29) : LUCATE 5B。,15:PRINTSPC 
(2 の) : GDBUB ラ の 2 の :TF B 和 ="E" THEN CU=CO-1: IF TZ<>FZ THEN GOS 
UE る 149: RETUEN 
IF B 和 ="E" THEN RETURN 
GUSUE 1929: GUTU 2999 
LOCATE 58,14:PKINT " 因 IDTH. .。 X "』: INPUT B も :BODSUB 32 
F=1 THEN うろ の 2 の 
IF E 生 ="E" THEN ユ の 89 
IF BB 多 ="P" AND CU>Ba THEN GBDSUB 2149:C0U=CD+1:BDTU 3 
MX (CO) =VaL (を ) 
LOCATE 58,15:PRINT "DEPTH. .. Y "』:INPUT B*:GUSUB 32 
F=1 THEN の 6 の 
MY (CD) = ニ VaL (E 多 ) : MZ (CD) =TZ 
RETURN 
Y/N RELINE 
LUCATE 5,17: INPUT" ロ . に (Y/N) "も : BUSUB 4379: IF C*="YP TH 
EN RETURN 
: ビニ の: FOR C ロ =BA TD BF:TF MX(CO)<B9 の THEN GUSUB 1939 
NEXT ヒロ: CD=Baー1 : ビニ 5: RETURN 
MAEE DATA/MALL 
愉 メ (EQ) ニ MX (Ba) 19 の 9: BUSUE 4599: EC= の : B5=CD+1 : BE=B5+ ビ ローB 生 : 
= ローEBAz FUR C ロ =BS TO BE:MX(CO) =MX (CD-BM) : MY(CO) =MY (COーBP) 
: MMZ (CD) =FZ 
ED=CD+ BI+E ビ : BF ニ ED+1 : MX(BD) =WX (CD) : MY (BED) =MY (CO) : MX(ED) 三 M 
X(BD)+1g の 9 
MZ (ED ) =TZ : 山 Z(BF ) =FZ : MX(BF ) = 上 MX (CD) : MY(EF) =MY (CD) : EC= ニ ECT+1: 
NEXT CO: MX(BS) =MX (BE) +1 の gg: MX (BA) MX (Ba) +190 の 
FUFR CO=RS TU BF: ITFMX(CO) <B9 の THEN BUSUE 1939 
NEXT CO: ヒロ ーBF : GDSUE 199: RETURN 
FLUGB . 一 1 1 の <B も >+11 の 
GUSUE 4 コア ェ ビ ニ ( (日 本"") す (VaL (日 多 ) <ー1 1 の ) + (VaL (昌和) >119) ) ※ー1: 
F F=1 THEN BEEP 
RETURN 


sg LUESTE 58。11: INPUT "MIDTH/TOU  X1 "BB も : GUSUE う 2 の 9 の: TX= ニ VaL (B 


ーー ニー ニニ エーー ニ ーー ニー ニー ーーー FRUNT VIEM 

LUCRTE SB8。11: INFUT "DEPTH/TOU YY1 "4E ま : GUSUB 2 の 9: TY=VQL (E 

名 ) ょ IF F=1THEN 3 ジラ 

LHCRTE SB。12sTNPUT "DEPTH/FUR YE "HB も : GUSUB 3 さ 299: IF F=1 征 

HEN さら 4 

FY=VaL (EE 生 ) : BR= ニ CU: BE じ = の ウ : GUSUE 329: MX (CU) MX (CU) +1 の の : G0SU 

BR 2 の 

CH=CH+1:LUCATE 58。14:PRKINT SPC(2g) :LUCATE 58。15:PRINT らら P 
C(29) : GUSUBH させ 9 の 9: ITF E ま ="E" THEN CH=CU-1 : TF TY く >FY THEN BOD 
SUB 337 の : RETURN 

IF HE* ま ="E" THEN RETURN 

GUSUBR 172: UTU 3269 

LOCRTE 58.14:PKINT "MEIDTH。。。 X "ETINFUT HB$: GOUSUB ささ 2 の の : 【F 
F=1 THEN 329 

IF BEB も ="E" THEN GUTU ささ 5 の @ 

IF B ま ="M" aaND CO ジ EER THEN GUGUB 全 14 四 :C ロ =CU+ 1 : GUTU ミニ 29g 

MX (CU) =VQL (B ま ) 

LOCRTE SB 。19:PRINT "HEBHT。..。 Z " ェ : INPUT BE も ま : BUSGUE さ 2 ロ の : エ F 
F=1 THEN 3 さ 3g 

MZ (CO) =VQL(B ま も ) : MY(CU)=TY 

RETURN 

ーー -ーー-ーHARKE DaTA 

MX (Ba) =MMX(BA) 一 1 の 9 のり: GUSUE 4 ロウ : ビビ = : BG= ニ ビ ロ + 1 : EE= ニ BS+CUーE 人 Rs BE 
M=BS-Ba:FUR CU=BG TU BE:MX(CUH) =MX ( ビ ロ ーBI) : ZZ (CO ) 三 り 7Z (ヒロ ーBN ) 
: MY(CU) =FY 

BD=COU+ 3M+BC: BF=BD+1: MX(ED) =MMX (CO) +1 の 99: !Z(BD ) 一 MZ (CO ) 
MY(BD)=TY:MY(BF ) =FYs MX(BF ) MX (CO) : !Z (BF ) =MZ (CDO) : B ロ ビニ B ビ 了 ナ 1 : 
NEXT CU: MX(BS) =MX(EBS)+1 の 9 の 9: MX (EAR) =!X (En ) 1 の の 

FDR CU=ES THU BF:IFMX(CU) < の THEN GUSUB 19 ラ の 

NEXT COU: Cd=BF : GUDSUB 19: RETURN 

an ラニ ーー ニー ニー ニー IDE り ヵ jEM 


生 ) : 1F F ニ 1THE ト 343g 

LUCATE 5,12: INPUT "MIDTH/FUR XS ":B ま : BUSUB ス 2 の の : ITF F=1 
HEN 34499 

F メニ VaL ( 選 名 ) : B ロ =C ロ : E ビ = の: GHSUB さ 499: MX(CU) ニ ビ X+19 の 9 の: GUSUB 2 
ロロ 

CU=CU+1:LUCATE 58.14:PRKINT SPC(2g) : LUCATE 58。,15:PKINT ら P 
じ (2 の 9) : BU0GUB 49 の =: TF B 和 ="E" THEN C ロ =CUー1 : ITF TXZ テ FX THEN GO 


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 一 』45 


{Filg Mame ! 3DMLD2 ] 


SUB うら 7 の : RETURKN 

IF HE も ="E ビ " THEN RETURN 

G0SUB 1 ワウ 2 の : GUTU 46 の 

LOUCGTE 58,14: PETINT "DEPTH. ..。 Y "ikTNPUT B も : GUSGUB 329: IF 
F=1 THEN う 47 の 

TF 日 も =" リ ビリ" THENM うら 5 の 

IF 日 も"147 NMND CUO>BR THEN GUSUH 214 の 9』 CH=CU+ 1 : GUTH 3490 

MY(COU) VaL (B 多 ) 

LOUC じ CTE 58.15: PRKINMT "HEBHT。。。 Z " ョ ETINPUT B も : GUSUB 3299: IF 
F= ニ 1 THENH うら コラ 

ZZ( じ OU) ニ ソ nL (日 多 ) = メ ( ビ ロ ) ニ F メ 

RETURKN 

3 IaEE DaTa 

MX(E ロ ) ニ リロ X メ (BE 全 ) 一 1 の のり: BUGUB 45 の 9 の: B じ = の : B5=CH+ 1 : BE=BG+CU-BRz B 

NM ニ = ニ ロ ら ーBa: FOUR じじ 0U= ニ 5 TU BE:MMY( ビ OU) =MY (CU-BH) : 7Z (CHU) = 罰 Z (CU-BN) 

: MX(COU) ニ TX 

ED ニー じ リナ BE オビ = ロビ ニー ロ D す 1 : ロイ (BEBD) ニア (COD) : 軌 ZZ (BD) =MZ (CD) 

MX(BD) ニ T メ + ィ 1 の の : り X( ロ F ) ニ ビ メ = 凡 Y(BF ) ニ 還 Y (CD) : 7 (BF ) =MZ (ED) : B じ = 

EC+1 =:hIEXT CU: MX (BE ) 三 軌 X (所 弓 ) 1 の 9 のり: 四 X (BA) = りり X (Ba) +19 の 0 

FOUR じ ロ = ニーロ T ロ PBF: TFMMX (CDU) く ヨ 9 の THEN BUHSUB 193 の 

NEXT _ CO: ビリ ロニ BEF : GSLUE 1 の: EETUEN 


/ 芝 基 基 革 芝 天天 芝 基 基 し じ T 民 し じ し ビ 革 甘 甘 天 革 基 基 基 区 

G05UB 416g:= TF じ も = ニ "N" THEN RETURN 

IF VaL (も ) エニ イオ OK VaL (も ) く 1 THEN 649 の 

LINE (らら の の 。 1 7 弓 ) 一 {6 1 7) 。PSET 。 1:LINE (55 の 。 152) (559 , 197) ぅ P 
SET』1:LUCATE ヨ 。1 フ :PRINT "18 の? " ュ LHCRTE 76。17:PRINT" の 7"s 
LOUCATE 5.1 全 = TNFUT "ANGBLE/T ロ DU・・・・・・ "も : AT=VaL (B 多 ) : BUSUB 
4 ス る 7 の : LUCATE 58.。1 さ =: INPUT "NBLE/FUR・・・・・ り ェ 日 多 : 人 F= ニ VAL (PB 多 ) : BU 
GUE 4 ミエ フウ ITF AT> と AF OR AF> フ 2 DR AT=AaF THEN BEEP: 5BDTU う 679 
人 T じ ビ ニム: エビ ー RT ビ - に そら の THEN GT ビニ AT そら の 

nnF ビ ニー 全 F = エ F 人 F ビ そら の THEN ロビ ビニ AF 計ら 

CIKCLE @G(55g 。 175) 。5 。 さ 。 。 1 一 全 F ビ / ミ 69 。 1 ATC/ さ 6 の 

LUCARTE 53。14: INPUT "D エ TV り IDED CIRKCLE " ュ B 殺 

ITF BE まま ニ "NNU THEN BDDSU 王 47 ア 56: GUTH さら 669 

TF いし ( 己 和 まあ) で 1THEN コア 19 

D じ ビニ い ム 人 L (互生 ) : DSUE 4 さ 7 ウ : IF DC=g HK (AF-AT)*19 MHD DCX19 < テ 
の THEN BEEF : GODT う 7 ア 1 

FURK に デニ 1 用 T ロ 19:LOCATE コ 8』E: PRINTSPACE も (21 ) s : NEXT 


5 草 3 次 元 実 用 プ ログ ラム 3 題 


【 File Name 20MLD2 1 


UN VaL(C*) GDTO ミア 7 の 。 さ 910 。 494 


LUCQRTE SB,1@:PRINT CHR 和 (SH95) 

LUCATE SB,11:INPUT "HEGHT/TU  Z1 "HB ま : GUSUB さ 2 の の : 7Z=VnL (BE 
本 ) :。IF F= 1THEN さ 7B9 

LCATE 58,12: INPUT "HEGHT/FUR ZZ "リュ HB も: GUHSUB 
争 ) = IF F=1THEN う 79 の 

LUCQATE 5 ヨ 。1 さ : INPUT "MIDTH CNT 。 X " : 日 も : GUHSUE 
) :・ IF F=1 THEN 3 の 

LUCATE SB,14: INPUT "DEPTH _ CNT 。 Y "BE ま : BUHSUE さ 2 の の : Y=VAL (B も 
) : IF F=1 THEN 31 の 

LCATE 58。18: TINPUT"RRDTUS. - . "sE ま : GUSUE 4 ささ 7 の: Rn=VAL (B 
あう F ABS (RQ) +ABS (X) >11g OUR ABS(RA)+aBG(Y) >:11 の THEN 32 
ニニ ニニ ーー MEE _ DATA/CIRCLE 

=BakFUR 1=aT TU aF_ STEP DC:MX(J) ニ X+RAxCUS(T う 。 14159/ 1 
):IF MX(J) テー. の 1 AND MX(J) の THEN MX(J) = ニ g 

MY (J) =Y+RR#GIN(T※ コ 。 14159/18 の ) : TF MY( ゴ ) テ エー. の g1 QRND MY(J) < の 

THEN MY (J ) =@ 

WMZ () = ニ TZ ょ = ニ J+1:NEXT 1:MX(BR) 三 MX(ER) +1 の の の : : ゴ ニ ゴ ー1 

FUR CU=BR+1 TU JiGUSUBE 193 ウ 9:NEXT COU:TF TZ< テ FZ THEN COD=CO 

ー1:GUSUB さ 14 ウ : CU= ニ CU+1 : GUTOD さ 8B9@ 

BEF=COU: BR= ニ BE! 1 GUSUE さ 1 ウ 9: GOTOU 389g 

LUCATE SB。1 ウ :PRINT" "ERETURN 

ーー ニーーーー FRONT VIE 

LUCATE 2B。1@:FRINT CHR 和 も (SHEF ) 

LUCATE SFB。11: INPUT "DEPTH/TOU  Y1 "B 和 も : GO0SUB 2 の: TTY=VaL (H 
も) : 1F F=1 THEN さ 92 

LUCATE 58。12: INPUT "DEFTH/FUR YE も: BUSUE 32 ウ の ウ :FY=VAL (BE 
和 ま ) :・ ITF F=1 THEN 393@g 

LUCaATE 58。13: INPUT "MIDTH CNT.。 X "EE を: BUSUE 32 の の : メニ VAL (日 
) : IF F=1 THEN 394 の 

LOUCATE 58。14: INFUT "HEBHT CNT.。 Z ":B 多 : GUSUB うろ 2 の の : アニ VaL (BE$$ 
) : IF F=1 THEN ミ 959g 

LUCRTE 58。15: INPUT "RADIUS。 。 。。.。 「「E 和 も : BUSUB 4 ス 7 ウ : RA= ニ VaL (HB 

生 ): IF BE5(RR)+aBS(X) >11 UR aBG(Ra)+aABG(Z) >11 の 9 THEN 969 

ンー ン ニニ エニ ニュ esse ARKE DRTR 

リー ニ BE ビ 人 as FUR テニ RT TU aF STEP DC:MX(J) ニ X+RACOUS( エ テテ 14159/ 18 の 
):TF MX( ゴ 5) テー. の 1 QAND MX(J) < ミウ THEN MX(J) = の 


中 Z (J) ニ Z ィ Ra# 己 TH( エ ※ う 。 14159/ 1 の ) =: TF 内 Z( け ) ジー. の 1 aND MMZ(J) の 
THEN MMZ( け ) = 


さと の の:FZ=VaL (BE 


さ 2 の の : X ニ VQL (B$ 


74/ 


『 1a as ィ rgi nh2 1 
Filg 用 0 コリ 9 し // 4 


りり イ ( ゴ ) ニ イイ =: ゴ ニ J+1 =: NEXT Ts 軌 X (BA) 三 MX (BR ) + 1 の の の: ニー1 
FOR ロー ロロ + す 1 TO JJ: GUSUB 193g:NEXT CU: IF TY く <>FY THEN COU=COU 
ー1 : 508UBE ニラ ラプ Z の : じ ピロ デ テ ビ リィ 1 : GUDTU 3 ヨ 89 の @ 

50TOU 3B 選 


らら IDE リツ IE 
LOUCRTE 2 1 の 9: PETINIT CHR 条 ( 多 H96 ) 


LUCATE 5,11: INPUT "MIDTH/TD  X1 "3』H 和 :BUSUB う 299:TX= ニ VaL(B 


生 ) = IF F ニ 1THEFH 4 の 5 の 


LUCATE 58。12: INPUT "MIDTH/FUR X2 "』B 和 も :GUSUE 3299:FX=VaL (B 
外 も) = IF F= ニ 1THEI】 4 の 6 の 


LUCATE 58 。 1 る: INPUT "DEPTH CNT .。 Y " ョ HB 多 : BUSUB 209:Y=VaL(B も 
) = IF F= ニ 1 THEFH| 4 の 7 の 


LUCATE 58。14: INPUT "HEGHT CNT。 Z "』E 多 : BUGUB 32 の : 7=VL (PB を 
) ・ IF F ニ 1 THEH 4 の の 


" ュ B 多 : BUGUB 4379: RA=VAL(B 


41 1 の ゴー ニ Bn: FDRE エニ RT TD 人 F 

) 

MMZ (J ) ニア +Ra※ ら TN( エ テニ 14159/ 1 の ) : 財 X (J) = ニ FX: ゴ = ニ J+1 :NEXT TIzMX(B 

如 ) 三 只 X(B 全 ) 1 の の の = コー ニ ゴ ー1 

413 の FUK C ロ = ニ E ロ +1 T ロ J:GUSUB 19 ミ の :NEXT CD: IF TX<>FX THEN CO=COU 
ー1:G0SUEB うら 7 の : ヒビ ロニ ビ ロ + 1 : GBDTH 39 

414 の 9 GUTOU ミコ 889 

es VIEEMM/ 1 マラ 

4169 LUCATE 9. PRINT "2.FRONT 
PLRNE " : 所 人 ロニ ビ ロ 

4179 LUCGTE 9 9:PRINT"1.PLANE" : BA=C ロ 


STEP DC: MY (J) =Y+RaCUS (T* う る . 14159/ 189 


る .S1DE": LODCATE 59,9:PRINT"1・ 


418 の LINE(464 。 ア コ ) 一 (61 の 9,8) 。PSET 。,B:LINE (464 。7B) -(549 98) ,PSE 
も 

4199 LUCATE ら 9。9:FRTINT"VTEM つり": 多 =TNPUT も (1 ) : BUSUB 4 さ 79: IF じ 
SPPTHEN 4 つの ELGE 4199g 

429 の 9 LUCATE フ 4 。9: ビ RINT C 和 も: RETURN 

421 " 

4229 PRINT "/" ェ PRTNTUG TNG" 半井 提 基 振 . 牛 " ュ MX (DL) : 

423 の ・ 

424 の 

2 コウ 天天 基 芝 芝 基 区 DRTA/ し し 1 コ T 贅 交え 区 和 

4269 LPRKINT" No- 4 X だ まけ ( Y ) (アッ 


し し 。。 {6 {6〈#《#《 。 。、 = EURO デー 


748 5 章 3 次 元 実用 プロ グラ ム 3 呈 ニ 一 一 一 一 ーーーーーーーーーーーーーーーーーーーーー 


padE 19 [File Nsmg ij 39NL82 ] 

7 FUR DL=1TOU CU:LPRINTUSTNG" 提 揚 壮 拓 "』DL < 

< IF MX(DL) >:B の 9 THEN LFRINT" LX]1"s:LPRINTUSING" 拉 提 韻 提 提 。 提 
"saMX(DL ) 一 1 の: : GUTOU 43@ の 

人 499 LPRINT" [/]"』:iLPRINTUSTNG" 拉 拉 持 持 提 提 。 韻 "=MX(DL ) ェ 

4 の LPRINTUSTING" 拉 提 提 提 韻 持 。 菩 " ュ MYK(DL) :MZ(DL ) : NEXT 

4 さ 31 RETURN 


介さ さ 急 「K 基 天天 REEP GMTICH 天天 区 
介さ 4 ロニ ロ +1 :TF ロニ 2 THEN = の g 
さ 35 四 RETURN 


4 さ 7 加 BEEF HBsFUR BT= の 9 TU 5g:NEXT: BEEF の :RETURN 
4 う ヨ 軌 「%※※※※ 人 QNGLE。 SCALE 。 夫 半 共著 
4 さ 99 に ロニ KR/2 ュ TTF ド EK。 1 THEN に ド 人 Q=1 

44 の 9 GUSUB 44 さ gg:RETURN 

441 ドニ KR2s ITF KFE12H THEN に KaQn=12 

4429 BUSUB 443: RETURN 

44 さ の AN= う 14159/ ド /( さ 。 14159/ 18 の の) : RETURN 
人 444 に KZ ニ に ド Z*2s ITF EKZ>1 THEN ド Z テ 日 

4459 GUSUB 448 ウ :RETURN 

446G に Z ニ ドア /2 ェ TEF に Z く 。1 THEN に に Z=. 1 

47 BUHSUE 448g: RETURN 

44 ロ の し = ビ に Z*19g: RETURN 


45 ら 99 LUCaATE SB。17:PRINT "BUSY !! 9 RETURN 


人 4 ロコ 区 区区 区 天天 そる D DRQT GAVE # 半 天天 基 天天 基 基 天天 区 

453 四 COULUR 弓 :LUCATE 6g。18: INPUT"FILE NAME"sTITLE も : IF LEN(TITL 
E も ) 日 THEN BEEF: GUTU 45 さ の @ 

442 TITLE 和 =TITLE ま も +GPACE ま (ヨーLEN (TITLE も ) ) :LUCATE 69。14:PKINT"R 
ERDY D E SE ! "giLUCATE 69。15 

455g LUCRTE 69.17:PRINT "HIT RETURN EEY":COLUR 2 

456 BEEP の ウ : じ 和 を =INEEY も :LUCATE 69。15:FRINT"( KRECORD )『" 

47 婦 FUR BE=g TU 5g9:NEXT:BEEP 1:IF じじ も マン CHRK 多 (1 う ) THEN LUCATE 
6 。15sFRKINT" "gi GUTU 4569 の 

4589 LUCATE 6g。17:PRINT" "。 BEEP の ウ の:UPEN"OU" 。#1。TIT 
し LE 争 

45 ら 9 PRKINT 社 1 。TITLE 各 =PRKINT#1 CU:FUR 5=1 TO CO:PRINT 后 1 。MX(5) 

PRKINT#1 MY(5) : PRKITNT 革 1 MMZ() LUCEATE 75。17:PRINT Gi:NEXT 


し 312 朋 d 弟 1 うり LUZ 】 


じ LOU5EE 失 1】: ロ DD5UE 476 の : RETURN 

/ 攻 攻 革 デ デデデ し ロロ 如 D 1 基 共 基 基 基 革 区 区 基 基 

じ ロ ニ の : 己 チ ニレ ロ ェ ロ D5UB 467 の : RETUKRN 

/ 革 攻 基 攻 攻 攻 えと 区 し ロロ 折 日 の 務 基 基 基 電光 基 基 基 基 

ウル = じ ロ : GU 467 の : EETUERIJ 

CDLOE 呈 :LUPTE 6 の 9。14:PFEINT"REERDY D E8BE 17"giLHEATE 69,15 
:LUDCPaATE 6 の 9 の.18: INPUT "FILE HaE" ュ TITTLE も IF LEN(TITLE も ) :B TH 
EF) EEP ェ 5 イロ 4467 

T IT「L し ビ 和 モニ 出 UI ビビ 和 も すら ビビ (ー し EE すし E 多 ) ) :LUETE 69,17:PRINT"H 
IT RETURRN EEY" 

BEEP の : じ も ニ INEEY 和 も : LUCATE 6 の 9,15zPKINT"( P し  Y )7 


FUF ロニ の TO 5 ら の : 和 M ビ メ イ : EEP 1:IF じ 多 マラ ヒ HR 和 を (1 う ) THEN LOCaTE 
ら 6, 15: PRINT" ": GUTU 4699 

LODCATE 6 の 。17:PEINT" り : BEEP 9:DPEN"[ リ 。 社 1。TIT 
1 ビ 衝 


INFUT 半 1 。 丁 1TLE 和 も : LDCaTE 6 の 。17:PRINT "Founds "iTITLE 多 INPUT 
1 , ヒ T : C ロ = ヒロ D+CT : FDR し = エ +1 TO COs INPUT#1 。MX (L) 
INFUT#1.MMY( し ) ェ THNPUT 和 1 9Z( し ) sLUCATE 75。17:PRINT LiiNEXT L 


1 : 選 D り UE 476g: PETURN 
445 。 1 つの ) 一 (ニワ 。199) 、F' ら ET 9 PF : GBDSUB 4 う 79:RETURN 


@ サ プル ー チ ン と ジェ ネ レ ー タ を 使っ た 


F-BAS1C (FM-NEW 7/-77/-7) 


ゲー ム 作 り の ノー ハウ 


ナラ シノ マイ コン クラ ブ 著 /B5 判 208 頁 /2300 円 


ゲー ム 作 り に こそ プロ グラ ミン ググ の 真髄 が ある と いう 人 も お り ま す . し か し , 和 反 用 の 
骨折 り は ムダ その も の で す . 本 書 で は 数 多く の サブ ルー チン と パタ ー ン ジェ ネ レ ー ク タ , 
サウ ンド ジェ ネ レ ー タ の プロ グラ ム と , それ ら を 使っ て 作っ た ゲー ム を 収載 し て お 
し プー ム を 作っ て みよ うと いう 人 , 効率 的 に 作ろ うう と いう 人 に 役立つ 本 で す . 


ユー 


@ ゲ ー ム ・ プ ログ ラム を 作る 前 に @ バ パパ ターン ・ ジ ェ ネ レー タク 
@ プ ログ ラム ・ テ クニ ッ ク あ れこ れ @ UFO と ミサ イル 
eHANOI の 供 @ 15 バ ズル 

@UFO と レー ザー 砲 @ サ ウン ド ・ ジ ェ ネ レー タ 


750 5 章 3 次 元 実用 プロ グラ ム 3 題 


3 次 元 高速 描画 バー ジョ ン 


(3D WORLD Ver2.1 HMDeedD CDO 


この プロ グラ ム は 前 節 の Ver 2 と 併用 し て 使い ます 。Ver 2 で 作成 し 保存 し た 3 次元 デ ー タ 
の ディ スク を ,。 こ の プロ グラ ム で 読み 込む と 立体 図 の 高速 描画 が 可能 と な り ま す 。 また 。Ver 2 
- 無 い 機能 も 加え て み ま し た 。 
(ハイ スピ ー ド バー ジョ ン の 機能 と 特徴 ) 
(1) マシ ン 語 に よる 高速 描画 
(2) 立体 図 を 動か す オ ー ト アニ メー ショ ン 
(3) プロ ッ タ へ の 出力 
(4) 画面 の 保存 
(5) 描画 ステ ッ プ 数 の 拡大 (1200 ステ ッ プ ) 
以上 , 5 つの 主 な 機能 ・ 特 徴 が な あり ます が 。 3 面 図 モ ー ド の 入力 ルー チン は 省き まし た 。 で き あ 


ティ マン 1 っ 
7 こ ご で ご ざ Y2o 


が 


1 議 r374 
ビン ペペ ハ 


っ た デー タ の 描画 専用 プロ グラ ム と し て 利用 
圏 プロ グラ ム の 実行 


RUN 直後 は メニ ュー か ら 始 まり ます 


Oo メニ ュー の 内 容 は 。 


図 5-26 で 示す よう に , 


3D ACTION 。 …………… AC 
SAVE 3D DATA …… SA 
LOAD 1(NEW) …… バ ドド … L 1 
RO 訪 2 人 CDNT)……… こ ムー… L2 
V-RAM COPY 0 ………… VC 
と な っ て いま す 。V-RAM COPY 以外 は Ver 2 と 同じ で す の で , 前 節 を 参照 し て くだ さい 。 
ここ で , いき な り 「AC⑳」 と アク ショ ン モ ー ド を 指定 し て も , デー タ が 入っ て いま せん の て で 
モー ド の 移行 は で きま せん 。 ま ず LOAD 1 を 指定 し , デー タ を 読み 込む こと が 先決 で す 。 
V-RAM COPY は , 画面 を そっ くり ディ スク に 書き 込む こと を 意味 し , 第 3 章 の 絵 を 描く 
ゲロ グラ ム 「 ス ケッ チ ポ ボー ド 2」 で 使用 し た 画面 保存 と 同じ 動作 を 行ない ま 


757 


ファ イル 名 を 入力 する と , 画面 上 部 か ら 1 ライ ン ず つ デ ィ ス ク に 保存 し ます 。 こ の ディ スク 
を ,「 ス ケッ チ ボ ポー ド 2」 プロ グラ ム で 読み 込め ば 画面 の 再生 が で き , その 立体 図 に 色 を 塗っ た 
り 。 細 部 の 仕上 げ も 可能 と な り ま す 。 


3 TIOHrees 胡 5 乱 30 導 仙 っ 8 『-RMH (On W 
L0 和 0 1 ( 代 須 : U LM 2 (60 有 05 12 DE [SEPE8】 


( 図 5-26 ハイ スピ ー ド パー ジョ ン の スイ ン メ ニュ ー) 


画 アク ショ ン モ ー ド 

デー タク の LOAD 後 ,。 メ イン メニ ュー で AC 2 と キー イン する と , この モー ド に 入り ます 。 描 
画 シ ルー チン は マシ ン 語 で 組み まし た の で , Ver 2 の ベー シッ ク だ け で 組ん だ も の に 比べ る と 。 
その 速度 差 は 歴然 と し た 違い が あり ます 。 ベ ペ ベー シッ ク で は 。 ポツポツ と 描い て いた 立体 図 を , 

マシ ン 語 ,「 ダ ーッ 」 と いう 感じ で 描き 上 げ て し まい ます 。 し か し , 完全 な クリ ッ ピ ング 

処理 まで 手 が 回 ら うな か っ た た め , 作画 範囲 を 超え る 線 は 省略 され ます の で , その 点 は ご 容赦 く 
だ きい 。 作画 範囲 内 で の 描画 は 何 の 問題 ちあ ありま せん の で , 必要 以上 に 拡大 し な い 使い 方 を お 
すす めし ます 。 

また 。 マシ ン 語 で 実数 演算 の ルー チン を 組む こと は と て も 大 変 た こと な の で ,F-BASIC の 
ROM 内 ルー チン を 使用 し まし た 。F-BASIC (Ver.3) は 。 幸い に マシ ン 語 エン トリ ー の アド レ 
ス ま で 同一 で す の で 各 機 種 で 走 ろう せる こと が で きま す 。 

TILT や SPIN。 また は 図 の 大 きき 等 を 操作 する キー は Ver 2 と 同じ で す の で 前 節 を 参照 し 

2 


て くだ さい 。 た だ し , 作画 範囲 は Ver 2 と 異な り , 横 640 ドッ ト を フル に 使 ) 


計 
(一 
人 
% 
1 


5 章 


』 52 3 次 元 実用 プロ グラ ム 3 順 


の た め , 角度 や 大 き さ を 表す 数 値 は 表示 し て いま せん 。 


IION ぃ (KEI) 
放 IURN ぃ (8 5) 


仙 0w【A 
UN(4 


WINw【4)【6) 
IILie(2)(6) 


DOet7【5) 
KN)【3) 


( 図 5-27 ハイ スピ ー ド バー ジ 


3 


旨 2 が ン が ビ ー ド 


744 け | 
(RS) 


アク ショ ン モ ー ド 時 に [キー を 押す と この モー ド に 入り ます 。 この モー ド で は 立体 図 を コマ 
送り 風 に 動か し て 見 る こと が 可能 で す 。 動き を 決め る キー は 。 ア クシ ョ ン モ ー ド の 角度 や 大 き 
さ を 設 定 す る キー と 同じ で , キー が 押さ れる と 次 の キー 入力 が ある まで ,。 回 転 ま た は 移動 ・ 拡 
大 な どの 動作 を 続け ます 。 回 転 角 度 等 の 単位 は PF キー で 調整 で きま す 。 

コマ 送り は ,、 パレット と SCREEN を 併用 し た た め 緑 の 単色 画面 に な り ま す が 。 画面 の 切り 
替え は と て も 自然 で 、 ち ら つ き な ど は 起こ り ま せん 。 瞬時 に 次 の 画面 に 変わ る た め , いか に も 
動い た と いう 感じ が 味わえ ます 。 

回 転 方 向 や 移動 等 は 、 キー 操作 に よっ て いつ で も 変更 可能 で す 。[ 思 バッ クス ペー スキ ー を 押 
す と ,。 通常 の アク ショ ン モ ー ド に 復帰 で きま す 。 

アニ メー ショ ン 効 果 は ステ ッ プ 数 の 少な い 立 で 多 の 


ーー 


ーー 近 ロ の 月 日記 っ ミノ と 。 | 
y 送 り の 間隔 が 長く な り ま 


938100 放 テッ プ 


数 の 多い 複 術 な 図形 


753 


略 プロ ッ タ モー ド 


休 図 を プロ ッ ク に 描か せる こと に より , は じ め て 実用 と し て の 価値 が お 生まれ て きま す 。 ド 
ッ ト プ リン ク で の ハー ドコ ピー で は , 縦 と 横 の 比率 が 変わ っ て 印字 され る うえ , ドッ ト の 分 解 
能 ち 十分 で は あり ませ ん 。 その 点 プ ロッ ク は , 正確 な 描画 は むろ ん で す が , 分 解 能 に 至っ て は 
数 干 ド ッ ト メ 数 千 ド ッ ト と いら う 能 力 を 持っ て いま す 。 

虹 近 は , プ ロッ ク の 値 彼 もち 安 々 な っ て き て ち おり, 1 台 そ ろ え て お く < と 重宝 する と 思い ます 。 本 


書 で 使っ た プロ ッ ク は , ペン の 最少 可動 範囲 が 0.05 ミリ と 0.1 ミリ が 選べ , 約 A 4 サイ ズ ま で 


2 


( 図 5-28 ブロ ッ ク の 作図 例 ) 


の 描画 が 可能 な カシ オ の FP-1018 と いう 機種 です 。 こ の プロ ッ ク タク は, プリ ンタ の 機能 ち 兼 ね そ 


に プク の W じ ズ 
> テア し ゝ 幸 こ 
gp 人 人 。 に マー と 
さて, プロ ッ タ へ の 出力 で て です が , アク ショ ン モ ー ド 時 に [所 キー を 押す と 作図 を 開始 し ます 。 
作図 内 容 は ディ スプ レイ の 画面 と 同じ も の で す 。 テ ン キ ー な ど で 任意 の 向き の 立体 図 を 画面 上 
に 高速 で 描か せ , 好み の 向き に な っ た 時 点 て [キー を 利用 し て くだ さい 。 な お , プロ ッ タ に よ 


5 章 3 次 元 実用 プロ グラ ム 3 題 
る 立体 図 の クリ ッ ピ ング 処理 は 完全 に 行なっ て いま す 。 


園 ロー ラン ド D.G 製 プロ ッ タ 使用 時 の 変更 点 


現在 で は 手 に 入り に 


前 述 の り の プロッタ FP-1018 は , た また ま 筆 者 の 手元 に あっ た も の で す が 、 
ヽ い 機種 か も し れ ま せん 。 そ こ で 促 数 ベー ス で 最も 売れ て いる と いわ れる ロー ラン ド 製 の A3 判 


リス ト 5-3 の 


2070 一 2220 行 を 下記 の リス ト に 改め る こと に より DXY プロ ッ タ が 使用 で きま す 。 委 者 は DX 
Y880 で 動作 を 確認 し まし た が , DXY シリ ー ズ な 


DXY プロ ッ タ を 使用 する 場合 の 。 ブ ログ ラム 変更 箇所 を つぎ に 示し て お きま す 。 


系 提 3 番 h ノ フ リエ ナー ドー ニー ゴー- 
吉相 て 6 動 ) く は す で す 。 


ご く 基 本 的 な コマ ンド し か 使っ 


デー いま ん / の て 全 粒 務 へ の ma7E ュ 穴 中 ) っ レー テラ 
て いま せん の で ,。 他 機 種 へ の 改造 も 容易 に で きる 


さい 。 な お 。 ドッ | ブリ ンタ を 接続 し て いろ とき 
2 ドコ 則 ご が 取れ ます 。 


DXY880 フロ ッ タ (ロー ラン ド DG 製 ) 


207U "米村 玉林 玉林 玉 末 PLOTER ネネ * キ 本 玉 玉 * ネ キ 
2080 CLX=3B00 : CLY= CLX:HM=B39/CLX ネ 100: HX=CLX/539 : HY=CLX/1 75 
200 

2120 FOR 1=1 TO CO 

2130 IF WX(1I)=>BDO THEN 2210 


っ 1 40 
と 150 
2150 
2170 


どら 180 
ら 61830 


と 200 
と と 05 


メ =WX( 1 ) /HM: Y=WY (] ) /HM: Z=WZ( 1) /HM: GO0SUB 2240:X1= ロ X:Y1=QY 
1F_WX(1-1)>BUU THEN X=(WX(1-1)-1000) /HM ELSE X=WX(1 1 )/HM 
Y=WY( 11 ) /HM: Z=WZ ( 11 ) /HM: GO0SUB 2240:X0= ロ X: YU= ロ Y 

IF (X0D>0) 二 (X0<CLX) 二 (YU>0D) 二 (YU<CLY) 二 (X1>0D) す (X1<CLX) 士 (Y1>D) 
+(Y1 く <CLY) =-B THEN 2200 
IF (X0< く 0 AND X1<0) OR 
<0) 0R (YO>CLY AND Y1>CLY) 


OR (YOS<UD AND Y1 


(XD>CLX AND X1>CLX) 
THEN BEEP B:BEEP 0D:GOTO 2210 


E0SUB 19350:SWAP X0U,X1:SWAP YU,Y1:G0SUB 1950 


2 ル 100D ga ビ aa 6. 
5 の VHisie ラビ ルーバ Ys 


LPRINT*M 
LPRINT*D 


2210 NEXT 1:LPRINT*H*: < 
と 20 GO0SUB 2300:CLX=539: CLY=175: RETURN 


らい 


圏 マシ ン 語 プロ グラ ム の 入力 法 

ハイ スピ ー ド バー ジョ ン は ベー シッ ク と マシ ン 語 か ら な り た っ て いま す 。 リ スト 5-3 の 後半 
が マシ ン 語 プロ グラ ム の ダン プリ スト で す 。 

グン プリ スト と は , ノ モ リ の 内 容 だ どの アド レス (メモ リ の 番地 ) に 格納 され て いる か を 16 
進数 で 書き 考 し た ちの で チ 。 左端 の 4 桁 の 文字 は アド レス を 示し , その アド レス の 内 容 が その 
右 に 2 桁 で 表示 され て いま す 。 次 の アド レス の 内 容 は , さら に その 右 に 表示 され て お り , 1 行 で 


い 
Ng 
ユ 

い 
N 
NN 
No 
os 
に 
(1 

や で 
wt 


8 アド レス 分 (8 バイ ト ) の スモ 
番 右 の 2 桁 の 文字 は チェック サム で ,。 8 バイト を 加算 し て 得 ら れ た 合計 の 下 2 桁 を 表示 し 
て お り ,。 正しく 入力 で きた か どう か の チェ ッ ク を 行ない ら ま す 。 チ ェ ッ クサ ム は 入力 する 必要 は 


マン ン 語 の } 守 ち 込 み は, 指定 し だ アデ アド レス の メモ リ に 16 進 の 内 容 を 正しく 入力 する わけ で す 


が 。 普通 は ベー シッ ク の コマ ンド レベ ル か ろ で は 入力 で きま せん 。 マ シン 語 モ ニタ を 起動 する 


提 マン シン 語 モ ニタ 
MION 
と キー イン する ろ る と, マシン 語 モ ニタ が 起動 し ます 。 量 0 ーー マシ ン 語 を &H 6900 番 
地 以降 に 諾 開 ミ せ て いま す の で , 打ち 込む 前 に その アド レス 近辺 を の ぞい て み ま し ょ う 。 


D6900 2 


よう に &H 6900 番地 か ら 64 バイ ト 分 の メモ リ の 内 容 が 表示 
リ に は 何 も 入 っ て いな いた め ,。 すべ て 00 の 表示 に な っ て い ゆい 
ト 5-3 の ダン プリ スト の 内 容 に 変え て いか な けれ ば な り ま せん 。 


756 5 学 ー9. 次 光 実 用 グロ グラ ム 3 項 一 ーーー ジ ポ バ 上 バ バ パ ビ 玉 六 テ ッ ス 有 プ の て ーーー 一 


の 表示 に な り 。 デ ー タ を 入力 する こと が 可能 に な り ま す 。 た と えば ここ で ,。12 ざと キー イン す 
る と 

6900 00 一 12 

6901 00 一 計 
この よう に &H 6900 番地 に は &H 12 が 書き 込ま れる と と も に 、 次 の 番地 &H 6901 番地 の 入 
力 待ち と な り ま す 。 マシ ン 語 入力 は この 作業 を 繰り 返す わけ で す が , 入力 を 終了 し た いと き は , 
16 進 以外 の キー を 打 て ば 入力 コマ ンド M か ら 抜 け だ せま す 。 
こ で 再度 , 
D6900 9 


と キー イン する と ,。M コマ ンド で 打ち 込ん だ 内 容 の メモ リ ダ ン プ が 表示 され , 入力 し た デー 


以上 の 入力 法 は 、。 マシ ン 語 モニ タ の M コマ ンド を 使用 する 最も 手軽 な 手段 で す が , チェ ッ 
クサ ム の 確認 まで は で きま せん 。 打 ち 込 み に 自 信 お が ある の で し た ら , この 方 法 で も 一 向 に か ま 
いま せん が , 市 販 の マシ ン 語 入力 ユー ティ リティ を 利用 する の も ひと つの 方 法 で す 。 ユー ティ 
リティ は , 入力 し や すい よう に 工夫 され て いて ,。16 進 の AF も テン キー 部 で 入力 で き , か つ 


1 行 入 力 す る と チェ ッ ク サ ム の 表示 も し て くれ ます 。 


で の 入力 は 。 打 ち 込 ん だ デー タ が 正しい か どう か を ダン プリ スト と 見 比べ て , 


テ ュ リ オ うっ リ ギ テ ヽ に チュ ーー ーー こ プ ュ ナ 寺 ォ デ レス ー に 
な けれ ば な ら な い の で す が 。 チェッ クサ ム が あれ ば ,。 それ を 見 る だ ( 


GWSSSSS3 
SSSS る る 88 
NGSSSSSS 


Ett て 11111 
Ft て tttt1] 
SS8 る る 8888 
SSSS88888 
SSS8 る 88 る 8 
Ftt tt1111 
る 3333355 
SS858356 WSSS558S 


し ) 
.@@ 
@@ 
@@ 
@@ 
@@ 
69 
1 し. コ 
3 人 
69 
7F 
@@ 
6 る 
@ き 
合 
7 


SS5838855 放 
8158SSS よ 


75/ 


イ < - 確 HI カカ : 串 角 と な り ま 9999 7 (あの 5 5 ツク クサ ム の 人 名 合致 が 100 % の 正しき さ 3 を 証明 する と も 限ら 


な い 点 は 含ん を で お いて だ る の 。 


入力 を 終え た ら , 
SAVEM "MSUB 639"。&H 6900, &H6C76, &H6900 

と し て , かならず SAVE し て お く と と ち も に , ベー シッ ク プ ログ ラム と 合わ せ て 。 もう 1 枚 コ ピ 
ー を 取っ て お いて くだ さゆ 

ベー シッ ク プ ログ を RUN る せろ と , この マシ ン 語 は 自動 的 に LOAD され , アク ショ 
ン モ ー ド 時 に 働き 始め ます が , 1 字 で ち 間 大 えろ る と 雄 走 し , ディ スク の 破壊 に ち つ な が る 可能 性 
が あり ます 。 

マシ ン 語 の ミス は , エラ ー メ ッ セ ー ジ も 出る ず に , いき な り 雄 走 し 始め メモ リ の 内 容 を メチ 
ャ プチ ャ に し て し まう 仕 末 に 負 を な いち も の で すか ら 。 デ バグ は 細心 の 注意 を 払い , 充分 に 行 な 


ーー ノ ナ ェ タン 
0 WC ご し うぅ 。 


較 ハイ スピ ー ド バー ジョ ン の 構成 


( 図 5-29) ハイ スピ ー ド バー ジョ ング の 構成 


7 ルー トー ホネ ーー か 型 計 Ne 
LLIUIL_I 症 1 に - 
ーFHHH 一 本 1 1 


要り (| 
0 0 


(写真 5-38<40 家 の 間 取り の 描画 例 ) 


759 


1] 


(リス ト 5 て 3 3D WORLD ハイ スピ ー ド バー ジョ ン ) 


[ File Nane : DM/HS ] 


8 に 1 さ D M U R L D ver2.1 
” 。 HiBpeed Drawing ( じ )G. Tajima 


CLEAR 5 ,&H6 ヨ FF: MIDTH ヨウ 2 の 9: CONS ロ LE の 。1 昌 
DINM EX(249) : DM ま =SPACE ま (24 ) 

FOR 1= ロ TU 17:READ PD:PUKE &H6D4+1 。PD:NEXT 

IF PEEK(&H69 さ の) < >&HBE AND PEEK(&H69 ミ B)<>&H5 THEN LOADNM" 
MSUB6 さ 39" 

BUSUB 1 さ 7g 

CLS: CLX=6 さ 9: CLY=17: K 人 = ニコ: に アニ .2: CX ニ さ 22: CY=B ヨ 

UN KEY(6) GUSUB 227 の 9: UN KEY(9) GUSUB つう 7 ウェ DN KEY(4) GOSU 
E 2 さ 9g 

DN KEY(19) GUSUB 231 の :UN KEY( 呈 ) BUSUE 234 の :KEY(1 ) UN 

KEY (6) UN: =1 : MC=: BDTU 114 の 

/ 共 基 天 天天 天天 天天 基 区 MAQTIN MENU 基 基 基 基 基 基 天天 天天 天天 基 

GUSUB 13Bg:LINE (の 。17) 一 (639 。 17 日 ) 。PSET 。 1 

DN ERRDR BODTU 1 さ 1g 

COLUR 7:LOCATE の 。18:PRINT" さ D ACTIDN・・-・・・ aC" 

LUCATE 25,1H:PRINT "SAVE さ D DATA・・・ Ga": 

LUCRTE の @。19:PRINT"LUAD 1 (NEM)・-・ L1": 

LUCATE 25。19:PRINT"LUAD 2 (CUNT)・・ L2": 

LUCATE 59,18:PRINT"V-RQAM CUPY・-・・・ VC": 

LOCATE 5 ,19:PRINT"END・・-E": 

LOCATE 62。19:PRINT"[ STEP: "CO "]" ュ 

BUSUE 2 る の 

LOCATE 75。19: INPUT D$ 

IF D を ="AC" THEN BUSUB 1 さ 99 

IF D$="SA" THEN GBDUSUB 245g 

IF D も ="L1" THEN GBHSUB 255 の 

IF D ま ="L つ " THEN GUSUB 257 の 

TF D 多 ="VC" THEN GUSUB 269 の 

ITF D$="E" THEN FDR KY=1 TU 1g:EEY(KY) ロ FF:NEXT:MIDTHB ヨ の :E 


CLS: BEEP : jF ERR=9 THEN PRINT "コレ イミ ョ ウ テ "ー タ ハバ バイ リマ セン " ュ ェ ビ ロ = ピロ 
ロー1: GUHTO 136@ 


IF 
IF 


242 デ アル 
ERRK ニ 6 う 
IF ERKK ニ 64 
IF ERK= ら の 
PRTHNT" 


22 
DTIH4 MX(12 の の ) 


「 Filg Mamg : 23D 


PRKTINT "ファ 


リフ ブフ 。 


モト “ 
ぅ うり 7 (12 の の ) 。 


PRINT" テ ^ 


ィ メ フ カカ ~ UFF テ “ ズ リュ ョ ュ ミ BUT ロ 1 ミ 6g mn 
イル カ “ 
PRKTINT "ファ イル ノ ニシ ド ュ ウト ウロ フー テス リュ ュ BHTU 1 テ うら 
PRKTINT" テ ーー タク ヲ LOUAD シテ ウフ "サイ リュ ェ BUTH 1 ミ 6g 


ミリ カリ ッ マセ フリ" ョ ュ ミ BUTH 136g 


ErrorNo=" ERR: CLOSE : RESUME 114 


罰 Z (12 の の) : KRETURN 
FUR ドニ 18 TU 1 ワ 9:LDCaTE の , ビ :PRINT BPRCE も (79) 


: NEXT: RETURN 


北 を. 六 却 : 芝 / 肖 寺 21D 練 SD 還 EE そそ テテ テテ そそ: 
IF CU22 THEHN EERKUE の 


EEY(1 の ) ON: 


EEY (55) 


Di: EEY(9) 0N: EEY(4) UN 


BUSUB 2 う 3 の の :LTINE (の 17) 一 (6 う 39 。 17d) 。PSET 。 の 


LOUCATE の ,18:FRKINT 


N・・・[4]E6] 
PRKINT 

了 ・・・[2][B] 
240 。 1 98) 。P 


全 じ T 


E メ PaND・・・[ フ 7][ ラ ] 
" RETURKN・・・FB 5] 
REDUGE・・・[ 1 コラ] 


SET ,4 


TDN・・・[RET] 人 UTU・・・[aa] 
[PF91LPF 1 の ]" 

PLUT・・・[P] TIL 
[PF4JLPF5]"』 LINE (17) 一 ( 


SFPI 


じ メ ニラ の : じ Y ニ B ロ : DM ニ 1 の : D=15 の の : 5 ビニ ー1 . ら 7 の 8 : SD=1 579: 1= 紀 IN (SC 


) : じ 1= ニ CDS (5 
52= ニ ら TN (SD ) 
GUSUE 178 の 


ビ ) 
: じ 2 ニ ビ 0S (SD ) 


1 に 多 三 INEEY も = TFT に 多 ニ "" イ HEN 148 の 
THEN GUSUB 167 の 


TF に も 三 "人 n" 
TF TI に に 凶 三 "日 " 
TF TK も = ニ じ HK 
Y(4) DFF = G0 
TF IT に 和 ま ニ " ビ ピリ 


TF TK 生 = ニ じ HR 和 (1 マ ) 


THEN HARDC1 
も (SH の 8 ) 
TU 114g 


THEN じ EY(19) UFF EEY ( 己 ) DFF: EEY (9) DFF EE 


THEN BUSUB 2 の 7 


THEN BUSUB 1799:GUTU 148 の 9 


全 生 [に 生 : BUSUE 1549: GUDTU 148 の 


も ー" さ " 
も ー リ " ワ " 
ct リル ムル 
生 "1 " 
F AA$ も ="6" 
="4" 
Q$*=" ヨ " 
も ー" つ " 


介 生 ニー じ HR も ( 多 日 1 じ ) 
人 生ま = じ HR 和 も (H1D) 
折 和 ま ニ じ HR 和 ま (H1E ) 


THEN 
THEN 
THEN 
THEN 
THEN 
THEN 
THEN 
THEN 


D=D+D テ に Z 
D=DーD テ に KKZ 
ご じ ニ ラビ ナラ 。 
ら じ = ニ 5 ピー マラ 。 
ど D=D+ る 。 
ら 5D= ニ SD 一 う <。 


0MM= ニ UNMT+UNM テ に Z 
0= ロ UNM テ EZ 


14159/ に = 1= ニ 5TN (SC) : じ 1= じ UBS ( じ ) 
14159/ に Ai51= ニ STIN(SC) : じ 1= じ US (SC) 
1415 ワ / ビ に コロ 2 ニラ IN(GD) : ビ 2 ニ ビ ロ DS (5D) 
14159/ に Aa 52= ニ 8IN(SD ) : C2= ニ CUS (SD ) 


THEN CX= ニ ビ メ X+49 
THEN CX= ニ ビ メー4 の 
THEN CY= ビ Yー2 


IF まま = じ CHR ま (&H1F ) 


RETURKN 


THEN _CY=CY+2 


PURE Ho6C6 。 1 : BUSUB 1 の : SCREEN 1 。1:CULUR=( 1 。4) : SCREEN 2 


1 
9 
LINE (1 。1 ) (53 日 。174 ) 


FORE 


BUTU 167@g 


, PSET , 9 。BF 
BUSUB 174 の :TF 1T ま =CHR$(%HOB) 


[も =INEKEY 和 も =: TF エ 和 ま ニ リリ THEN 1769@ 


人 本 ニ [ 生 = TF [ 生 = ニ じ HR 和 (HO の ) 
BUSUE 1549: RETURN 


FUR T= ウ TU 7:COLUR=【( 1 。 1 ) : NEXT : SCREEN7 。7 ェ FOOK 


UEB 17 ヨ 9: RETURN 
"区 北 天 天 天天 天天 天天 ツ 1 巳 9 ロビ に 


LINE( 1 ,1 ) (63 日 。 174 ) 


に 1 

し 

PUREE HG691。VARPTR(UX ( 1 ) ) \25 
MD 256 

PUKE SH6914』VaRPTR (MY( 1 ) ) \25 コ 
MOD 286 


THEN_RETURN 


エエ テ エ テテ マエ: 
sFSET 。9。BF:LINE (の の, の ) 一 (639 ,。 1 7) 


6: PUKE 


6: PUEE 


FURE &H6916』VRRPTR(MZ (1 ) ) \256 : PU に KE 


MOUD 2S ら 56 
POUKE SH69184VaARFTR(CX ) 
MOUD 2 
PURKE &H691Q。VaRPTR(CY ) 
IMUD 6 
PUKE H691C。VaRPTR (CO ) 
MOUD 2556 
PUEE SH691E 。VQRPTR (NH) 
MOUD 25 る 
POUKE Ho929 。VaRFTKR (D ) 
IOD 2 る 
POUEE SH69S2 。 MARKPTKR(G1 ) 
MOUD 256 
FUEE を H6924 。VaRFTRK(S2) 
MDD 2 ご 6 
PUEE %&H6926 VaRKPTR(C1 ) 


\ ぞ らら 6: PUFEE 
\ ギ 2 ご 6: PUEE 
\ ギ 56: PUEE 
\256: PUKE 

\ ぞ 6: PUEE 
\2 ロ 6: PUEKE 
\ ぞ コ ら 6 : FUKE 


\2 ら 56: PUEE 


THEN 177@ 
&H6C6a ,。 己 : GUSUE 189 の の: SCREEN 2 
SCREEN 1 2sLINE(1 1 ) 一 (6 。 174) 
GOSUE 174 の : IF 1 生 ニ CHR* (HB) 


2 。2: CHLUR=(2。4 ) 
,PSET 、 。 BF 
THEN 177g 


%H6C6a , さ =: GBDS 


,PSET 。7 
&H691 さ 。VARPTR (MX (1 ) ) 
&H69155。VaARPTR (MY(1 ) ) 
&H6917 。VaRPTRK(MZ (1 ) ) 
&H6919 。VARPTRK (CX ) 
&H691E,VARPTR (CY ) 
gH691D 。VaRPTR (CD) 
&H691F 。VARPTR (NM) 
&H6921 。VARPTR (D ) 
&H692 く 。VaRPTR (1 ) 


H6925 。 VaRPTR (SG2 ) 


%&H6927 。VaRKPTR(C1 ) 


763 


[ Fiig Magg ! 20/H5 } 
IMUD 256 

POUFEE を H6928 , ソ KRPTR(C2 ) \2 コ 6: PUEE &H6929 VARKPTR(C2) 
IDUD 256 

EXEC 多 昌 6 ワラ の 

GU5UB ラウ の の : REETURN 


7 基 基 基 基 基 基 基 基 区 じ L し TP ピピ TNG 区 区 区 共 区 基 区 基 基 
IF メ 12Z の THEN メメ ニ の =: GUTD 199 の 
IF X1 > じ LX THEN X メ ニ じ LX: GUTU 199 の 
メメ ニ メ 1 
IF X1 ニ X の ウ の THE ト | YY ニテ Y1 : GUTD2 の る の 
YY ニテ Y 1 一 (1 一 YY の) ※( メ 1 一 XX) / ( メ Z1 一 X の ) 
TF YY の ウ の THEN YY= ニ の: GBDTU 294 の 
IF YY> ビ LY THEN YY= ビ LY: GUTU2 の 4 の 
X メ 1 ニニ XX:Y1 ニ = ニ YY: GUTU 2 の 969 
ITF Y1 ニ Y の THEN メメ ニ メ 1 : DUT ロ 2 の 9 うろ の ウ 
メメ ニ メ 1 一 (X1 一 X ウ ) %(Y1 一 YY) / (Y1-ーY の ) : BUTU 2 る 3 の 
KETURN 
/ 共著 区 基 基 基 基 区 区 PL し ロビ R 区 区 区 区 区 区 区 区 
じ L メ ニ 1 ワ 2 ウ = CLY=CL X = 日 M ニ 6 ら う ワ / じ LX テ 1 の の : HX ニ じ LX/6 う 9:』HY= じ PLX/ 175 


LPRKTINT CHR 和 も (&H1C) 』 CHR も (&H2 ) : "ーーーーーーーーーー 一 raph1C mOdg 
LPRKINT "PU" ョ 3 の" リョ じ ビ LY= "一 ーーーーーーーーーーーーーーーーー 一 一 上 rin 
に PRKINTIANSOa TO TIEX ィ は sg 三 RY3 補 ニー ジ ニラ quad (box ) 


FOUR TL=1 TO CO 

IF MX( エ ) ニ >Bg9 THEN 221 の 

メニ MMX( エ ) /HNM: Y= ニ MY ( エ ) /HM: 7 アニ Z ( エ ) /HM: BUSUB 224 の : X1= ニ XY1=DY 
TF MX( エ ー1 ) > ヨウ の THEN メニ (MX( エ ー1 ) 一 1 の 9 の) /HM ELSE X ニ MMX( エ ー1 ) / 日 
NM 

Y ニ MY て (エー1 ) /HN : Z ニ MMZ (エー1 ) /HM: BDSGUB 224 の : X ロ = ニ ロ X = Y ウ =DY 

TF (X の > の 9)+(Xg く CELX) 二 (Y の > の )+(Yg<CELY) す (X1 > の)+(X1<ZCLX) す (Y1 > の 
) 二 (Y1 く CLY) = ニー THEN22g の 

IF (XX の _ AND X1 ぶ @) UK (Xg>CLX AND X1:CLX) OR (Y の < の AND Y 
1 く g) DUR (Yg>CLY aND Y1>CLY) THEN BEEP BE:BEEP 9 の:GUTU 2219 
BUSUE 1969:GMQP Xg。X1:SMQAP Yg。Y1 : BUSUE 1969 

EPRTNI SD の 3X の 3 リリ ューY ロ 1 sc ご 三 dr2ayi 

NEXT TsLPRTNTPMNP の "MrGEBY タ 4 ココ ーー ラー ニー ニー ニニ ニー ニュ mOV 

GUGUB 2 う の の = CLX ニ 6 る 9:CLY= ニ 1 75 弓 : RETURN 


Z ビ ニーロ MI※H ロ メーX% じ 1 メーY テ 選 1 *# 己 フー アビ 2 = ロ X ニ (DXHX※ (一 X テ 1+Y テ ※ じ 1 ) /Z ビ ) 


が Obt 癌 mdtX20 身 用 2 ログ ツジ : バ 9)hーーーーーーーーーーーーーーーーーーーーーーーー デ ーー デー で 


5 
Rase : 3⑳ 有 HHS 


CXXHX: BY ニ CYXHYー(DXHX テ (一 X# じ 1# じ デーYK 避 1% じ ロ +ZXGS) /ZC) : RETURN 


* 共 革 天天 天天 BEEF GTCH 天天 
H= ニ ロナ 1 = TF ロニ 2 THEN ロニ 
RE TURN 


BEEF_ BEB:FUR BT=g TU SiNEXT: EEEP ⑦:RETURN 
"区 天 贅 区 NGLE 。 GCALE 。 光 区 区 天 基 区 
KA= ド 人 R/ 人 =TF ESRE。1 THEN ドニ 1 

BUGUB で そら 6 の 9: RETURN 

ドニ ER*s IF ド RE12B THEN ドロ =12 
GUGSUB ご う 6 ウ : RETURN 

全 N ミ モミ 。 14159/ ド R/ (さき さ 。 14159/ 1d2) : RETURN 
に Z ニ ビア ※ や ュ TF KZ:1 THEN ド Z テ =. 

GUSUBE 人 241:RETURN 

EZ= ニ EZ/B ェ ITF EZ ミニ 1 THEN ド Z ニ . 1 

GUSUE 241:RETURKN 

GL= ニ に Z テ 1 (2: RETUKRNI 


LUCATE 5B。17:PRINT "BUSY ! ! "9::KETURN 


^ 共 基 共 天天 基 天 区 くさ D DQTR SQAVE ※※※※ せ 区 共 天天 天天 基 
GUSUB 138g:COLUR LUCaTE の g。1 ヨ : INPUT "FILE NAME" TITLE 和 ま : 1 
F LEN(TITLE ま ) :B THEN EEEF: BHTU 2469 
TITLE も =TTTLE 和 ま +5GPACE 和 まま ( ヨ LEN (TITLE も ) ) =:LUCATE 25。1 昌 :PRKINT "KR 
日 DJDES RT? 
LOCATE 59.18:FRINT "HIT RETURN EEY":COULUR 2 
BEEF の : じ 和 ま = ニ INEEY も =: LUCATE 19:PRINT"[ DISE <ーーー DaTA _]"s 
FUR BE=g9 TO gi:NEXT: BEEF 1: 1F じ 和 も マテ CHR 和 も (1 用 ) THEN LOUCATE 
の ,19:PRKINT" り s :GDTU 2499 の 

) LUEATE 59。18:PRINT" "・: BEEP の :UPEN"OU" 。 提 1 TI 
TL ビ $ も 
PRINT 提 14TITLE ま :FRINT 持 1 、CH:FUR S=1 TU _ CO:FRINT 井 1 。MX (5) 
PRENT せ 1 MY(G) : FRINT 間 1 。 軸 Z( 己 ) :LHCATE 5 の g。19:PRKTINT siNEXT 
じ LUDSE 提 1:RETURN 
" 基 基 穫 攻 基 子 芝 芝 区 し 介 如 D 1 ※※ 贅 区 区 天天 
じ ロ ニー9 : 1 ニモ じ 0 USUB で ら 629: KETURN 


" 基 区 共 基 芝 基 基子 し ロ D つ 甘え 基 革 基 天 基 基 芝 
1= ニ ピロ : GOGUE 26 の の 9: KETURN 


765 


GUSUB 138 の :CUOLUR 5:LUCATE の ,18:PRINT"READY D ES5K !"gLO 
CaTE 25。18: TMPUT"FILE NAME"』 TITLE も : IF LEN(TITLE も ) 2 ロ THEN 


BEEP: GUTU 26 の の 
TITLE 和 も ニ 了 [ITLE 称す PaCE 多 (ローLEN(TITLE も ) ) : LUCATE 59,1 コ :PKINT"H 


IT RETURHN EEY リ ュ 


HEEP の : じ あ = ニ TNEEY イ 多 s LUCATE の ,19:PRINT"[ DIBE -ー- テ > DATA ]"』 

FUR ロビ = の 「 リ コウ:NHEXTzBEEP 1: 1TF じ 和 ま <> CHR も (1 る ) THEN LOCATE 
の 9,19:PKINT" "s 5 BUTOU 262 の 

LUCTE 59,18:PEINT" "j: BEEP の :UPEN" エリ 。 拉 1,T エ 

TLE 条 


INPUT 提 1 TITLE 多 =LUCTE 25,19:PRKINT "FoOundi "TITTLE も 』: INPUT 
#1 。 じ CT: じ CU= ニ じ U+ ナ ビ T = FOUR し ニラ エ +1 TU CU: INPUT#1 。MX (L) 
ITNPUT 持 1 。M7( し ) ETNPUT 提 1 MMZ(L) :LUCATE 59。19:PRINT し Li:NEXT し 


CLOSE #1: RETURN 
^ 基 基 基 天天 基 基 基 基 基 基 攻 芝 芝 ソー ドド 全 内 じ ロ UPY co18S 仙 E 聞 テテ テテ テテ テテ テ そ そそ テテ そそ スコ 
GODSUB 1 る 8g:LHCaTE の ,。18 

INPUT "SAVE/FILE NaME " ェ FIN を 

DPEN" ロ " 。 韻 1 。 FIN 

FOUR Y= の TU 175:LUCATE 9,19:PRINT"1 ineNo=" ョ Ys 
GET@A(,Y) 一 (6 ろ 9 。Y) 。EZ 。B 

PUEE &H6D9 の VQAKPTR (EZ( の 9) ) 壮 256 

PUKE &H6Dg1 ,VaRPTR (EZ( の 9) ) MDD 256 

PUEKE Ho6D92 , FEE に (VARPTR (DM も ) +1 ) 

PUEE &H6D の 3 。PEE に (VAKPTE (DM も ) オフ ) 


DQTA 198,249 , 199, 19, の 。16,19 の 9,1 の 9,2,166 
DATA 128。167 。169」192。1 ,3B。24 昌 ,57 


766 5 章 3 次 元 実用 プロ グラ ム 3 題 
3D WORLD ハイ スピ ー ド バー ジョ ン の マシ ン 語 ブロ グラ ム 


add + の +1 + つ + マ +4 +5 +6 +7 5um 

69 の の の の の の の の の の の の の の の の の 9 : の の 6nCO BE 69 B4 BD HB こ の 1 BE 69 =73 
69 の B の の の の の の の の の 9 の の の 9 : の 9 6nCB SE BD B2 さ 4 BE 69 AB BD :BD 
691 の の の の の の の の の の の 9 の 9 の の : の の 6QD の 。 HB っ ユ 7 BE 69 9C HBD B う の 1】 :1E 
691 日 の OO の の の の の の の 9 の の の の : の の 6QD ヨ B  BD BED C9 BE 69 26 BD B :FD 
ら 92 の の の 9 の の の の の の 9 の の の 9 の の : の 9 6nE の EE BE 69 24 BDD BO EE BE :52 
6928H  QO の の の 9 の の の 9 の の の の の の : の 9 6nEB 69 9 の BD BS さ 7 BE 69 2 s69 
69 こ の 。 BE 69 1C BD BS の 1 BD 90 : の B 6nFO  BD BH> の 1 BRD BD C9 BE 69 sDB 


693 晶 BF 6nFB 24 HBD 


6949 SC 


6B9 さ 7 


694 日 BE 69 16 BF 69 SE 7F 69 :^aB 6BOB BE 69 QH BD BS3 の 1 BD BD BA 
6959 SB 7F 69 59 29 64 の 9 の の :1D 6H1 の 9  C9 BE 69 2H BD BO EE BE : さ 1 
675H の の の の の の の の の の の の の の の =: の 9 6R1B 69 96 BD QAF 1 BE 69 9 の : く CC 
ら 6969 69 62 の 9 の 9 の 9 69 68B :9C 6B2O  BD AF 1 BE 69 1E BD AF : う 7 
96H の の の 9 9 の 69 6E の の の の :DZ 6RZB 1 HE 69 6 ED BS 37 BE :@6 
697 の 69 74 7F 66 24 DD :CS る RE この 9 69 9C BEBD B く の 1 BD BD C9 :B9 


6978 


6E っ 8 


に と ん に ! り 6EB49 


6?BB OO 9 69 BC の の の 9 の の の の :F5 6B4H  B こ 9@1 BE 69 26 BD B の EE sz:5C 
679 ロ 69 92 の の の の 9 の 9 69 98 :FC 6ERSO EE 69 9 BD QAF 1 BE 69 :64 
6998 OO の の の の 69 9E の の :9Z 6ESB 20 BEBD BO EE BE 69 9 の BD :EF 
ら 69  gO 9 69 An4 99 の の 9 g9 :@9D 6B69  B こ さく Z7 BE 69 69 BD ES の 1 :E2 
67AB 69 QQ の の 9 の 9 の 9 69 BO :2 6E6B BE 69 99 BD B2 34 BE 69 =:B1 
ら 69BO BA 7Q gg の 9 69 B6 BZ7 4 :F2 6RB7Z@ _ 18 BD AF 1 BE 6 66 BD >:EB 


67B 


6E78 


67CO る Eo9 


co7CH 22 の 6 BE 69 SQ BD BS :B9 ら 6EBB EE BE 69 2 BD B の EE BE =: ら 56 
ら 69D9  g1 BD 9 95 BC の ミ 2 の 1 の =:1C 6E9O 69 99@ ED B= さ 37 BE 69 2 =:69 
67D ヨ 2E @@ 7 BE 69 SQ BD B3 :97 6E9B ED B< 91 BD BD C9 BE 69 :DB 
67EO  @1 17 gO B2 BE 69 66 BD :1i4 6BQO 22 BD EO EE BE 69 2 BD :8B9 
65E 日 さ 1 BE 69 4 BD B3 37 :@6 6EA ヨ BEO EE BE 69 96 BD BS 3Z =: の 2 
69FO BE 69 6C BD BS @1 BE 69 :2 6EEO EE 69 QB BD B3 の @1 BE 69 =:6Z 
65FH Ba BD B っ 37 FC 69 Sn BS :7 さ 6PEBB 24 BD BEO EE BE 69 96 BD :F 


6Q99 9QO 4 FD 69 Sa FC 6 SC =:B5 ら 6ECO  QF 1n BE 69 9 ED AF 1 : の 6 


6AOB ヨミ g9@ 4 FD 69 5C FC 69 :@E 6BCB BE 69 2 BD B の EE BE 69 =:C9 
6a19 ら 5 さ ゥ 9 94 FD 69 SE 17 :Cg ら SBD ロ 99 ED B< っ 7 BE 69 6 の BD =:7B 
6R1H 9 58 BE 69 66 BD BS @1 :56 6BD8 っ ら 1 BE 69 9 BD B2 34 =: の E 
ら a2Q EE 69 78 BD BS 37 EE 69 =:6D 6EEO BE 69 72 BD BO EE BE 69 =:1B 
ら 6Q2 ヨ 6C BD B3 g1 BE 69 7E BD : さ SF 6BEB 1 ED ム F 11 BE 6 6C BD :EZ 
6 ふ 9 = ミユ 7 FC 69 5Q CS gg @8B =:74 6BFO っ っ 7 うっ 9 BE 69 7 BD B3 :32 
6 FD 69 SaAFCco95 っ う gg :44 6BFB 1 BD 9 5 PF 6C 6D BE :B く 


ら 6a49 8FD 69 SC FC 69 SE CS 59 6COO 69 7E PD B っ の 1 BD 9 の 5 :B4 


6R4 日  g@ 9 FD 69 5E 17 @1 の < =: 昌 7 6C の 8  EF 6C 6F PE 69 4 BD B3 :B5 
ら RS9 16 FF 67 FC 69 5A C ミ @ :FE 6C1O の 1 BD 9 の 5 PBF 6C 71 BE :BZ 
665 ヨ コ 94 FD 69 5 FC 69 5 っ :48 6C1B 69 Bn BD B っ 2 の 1 BD 9 の 5 :C の 
ら Q69 9 94 FD 69 5C FC 69 SE :8B9 6C29  BF 6C 7 マラ BE 6C 6D BC の の =:C1 
ら ロ 6 日 こ g の 9 @ ら 4 FD 69 SE 16 FF :a9 6C2 ヨ ウ ウ 2D 4 BC の 2 7F 2E 45 :FZ 
ら 6Q79G 49 29 EE 69 5 BD ES @1 :74 6C こ 9 BE 6C 6F 8C @9 99 2D うぅ D >:BF 
6a7B BED 9 5 8C @> 2 2E @B =:41 6C2H BC gg aF 2E こ B BE 6C 71 : っ 


ら 889 BE 69 5 BD BB? 91 29 の CE =:2 6C49 ヨ C @O @O 2D この @ 8C の 2 7F =:F6 
6888 BE 6 aE BD BE っ @1 BE 69 =:oD 6C4B 2E 2B BE 6C 7 うる BC の の の 9 :B2 
ら 899 5a BD aF 11 2 の 9 BE 69 =:1E 6CSO 2D 2 く < 8C @9 AF 2E 1E BE :65 
ら の 9 ワ 8 9 ヒ BD BE マ う ラフ 7 BE 69 B4 BD :DB 6CSB 6C SF BD の @ の DE 2 の 16 1 の :aC 
ら ム ng こさ 91 BE 67 9C BD E2 34 :1a 6 じ 6 ワ 9  @9 6C 67 GO CE の 9 の 9 @ の :E1 
6AA ヨ BE 69 9 ヒ BD B う マフ 7 BE 69 :91 6C6B の の 16 の くっ の の の 2 の 9 の の @ の :1B 
ら 全 BE の  B4 BD BE こ 91 BE 69 5C BD >:65 ら C79 9 OO OO の 9 の 9 <9 9 の 9 : こ 9 


1 に 】 2 う 4 BE 69 A2 BD B? う 7 =:S56 6C7 ヨ B の OO OO の の の の の の の の の : の 9 


76/ 


| 立体 図 の 陰線 消 法 と ペイ ント 法 | 


1 


3D WORLD 2 と その ハイ スピ ー ド バー ジョ ン お よび 第 3 章 の スケ ッ チ ポー ド 2 プロ グラ 


ム は , 保存 し た デー ク の や り と り が 可能 で す 。 この 3 つの プロ グラ ム を 利用 する こと に より , 
際 影 を つけ た 立体 囚 の 作成 が で きま ます 。 


( ハイ スピ ビー ド バ ー ジ ョ ン (3DW/HS) の 起動 ) 


3D WORLD2(3DWLD2) の 起動 


町 且 … 貸 ) 重 …0 lrrr(OKGJ DPWS--DXD 33 叶 
LO 人 Pe TMPOCD RONE…[DCJ [OU 
立体 図 の 高速 措 画 
(デー タク の 読み 込み 後 AC 選 ) 


ざさ 出 GO 


3DWLD2。 3DW HS。 SKETCH は フロ グラ ム の ファ イル 名 


768 5 竜 3 次 元 実用 プロ グラ ム 3 題 


次 に その 手順 を 紹介 し ます 


この 方 法 で 作成 し た 立体 図 を いく つか ディ スク に 保存 し て お 


く と 。 わ か りや すい 立体 図 の 提 


供 が す 早 く 行 な ぇ , 建築 や デザ イン の プレ ゼン テー ショ ン に は 最適 で す 。 


「 プラ リー と し て 保存 する の 


また さま ざま な 大 き さ や 角度 か ら の 立体 図 を 作成 し 。 個人 の ライ 
も し れ ま せん 。 手間 を か けれ ば その 分 だ け 良 い 画質 が 但 ら れ ま す 。 


も 楽し いこ と か ワイ ヤー フ 
レー ム の 立体 図 に あき た と き は , この 方 法 を 試し て くだ さ 


ヽ いい 。 


(スケッチ ポー ド (SKETCH) の 起動 


ー ソ ル で な ぞ る よう に 白 な ど 
ほ い 場合 は ,。 この 処理 


ベイ ント の 実行 


3 次 元 デ ー タ サン プル | 


3D WORLD Ver2 で 使用 し レ し た モデ ル 
の 3 次 元 デ ー ク を 以下 に 収載 し まし た 。 こ の 
リ 還 は メス イン シン ーー の (MS 
DATA) で 打ち 出し た も の で , 左端 か ら ス テ 
ッ プ No (これ は 打ち 込む 必要 は あり ませ 
ん ),[*j PENSET, DRAW の 選択 。X 座 
標 。 Y 座標 。Z 座 標 の 


NO- ( X ) 4 Yic2 ( .Z。4 
1 L%] ー16.9 1 の 9.9 9 
2 E/] ー16. の っ 9.9 8.@ 
さ 上 #] 16.9 19.9 日. の 
人 4 上 /] 16。.9 うさ 9- 9 8-9g 
に [*] 16.9 19.9 8.9 
に ) L/1 ー16.9 1 の 9.9 8.9 
フ [ テ %] 16.9 さ 9. g -9 
8 上 /1 ー16。@ さ 9-9 8.9 
9 L*] ー4 9 19.9 ー6- 9 
1 の L/] ー4 。g 2.9 2.9 
1 1 EL/] ー4 9 19. の 9 
12 上 *] 4.9 19.9 ー6。g 
さ 上 / ュ 4.9 2.g 2.9 
14 L/] 4.9 19.g 日.9 
15 L\] 4.g 19.9 ー6- 9 
16 E/] ー4 9 19.9 ー6- 9 
17 L\] 4.9 2.9 2.9 
18 上 /] ー4 。g 2.g 2.9 
19 [#] 4.9 19.9 8.9 
シン 上 /] ー4 9g 19.9 .9 
21 L#] 4.9 19.9 ヨ .9 
ス っ 2 上 /] 4.9 ー9g. の g.9 
つく L/] 4.9 1 の 9. の ー6.9 
2 っ 4 上 /] 4.g 1g. の に 軸 り 
2 [#] ー4 9 19.9 日 -g 
26 F/1 ー4 9 ー59g. の g. の 9 
2 フ E/] ー4 9 1 の 9.9 ー6.9 


1 
テ ビ ト ) ト ) |! 


ー ト ) ト ) 
QmQOQOOQQQOQOO 


QQGQQQGQQGQGQQ 


1 NN Il 1NDNI 
ょ CQQpQcQQpQQQQmOo ひ OoQmorummoQmo 
iFPIEEH 
QhDQGQGQGQNDQQGQGQQGQGQGQGQGQGQGQGQGQGQGQGQGQGQQ 


ーー ゃ 


QO い ひら らい DNー 妥 


f 


0 


B の g.9 
B の - の ウ 
B9. の 
の. の 
1 の .9 
18. の 
18. の 
1 の . の 
1 日 . の 
の. の 
18.9 
ヨウ . の 


呈 都 心 の 高層 ビル 群 


( X ) 
ー199。 の 
ー49。 の 
ー49. の 
ー199.g 
ー1 ロ gg. の 
ー さ 9 。 9 
さ g。 9 
さ の 9 
ー さ の 。 9 
ー さ 9。 9 
49.9g 
199.9 
199.9 
49.9 
4g.9 
ー199.9 


( Y ) 
Bg. の 
B9.9 
49。 の 9 
49、 の 
に し 問 り 
B9. 9 
B の .g 


( Z ) 
ー さ 2 。 9 
ー さ 2 の 
ー さ 2。g 
ー さ 2 。 9 
ー さ 2。9 
ー さ 2 。 9 
ー さ 2.9 
ー さ 2。9 
ー さ 2。 9 
ー32 9 
ー32 9 
ー さ 2 。 9 
ー さ 2 。 9 
ー32。 9 
ー さ 2。 9 
ー さ 2 。 9 
ー さ 2 。 9 
ー さ 2. 9 
ー さ 2 9 
ー さ 2 。 9 
ー さ 2。9 
ー さ 2。 9 
ー さ 2。 9 
ー さ 2 9 
ー さ 2。 9 


ー さ 2 9 
ー さ 2 。 9 


ー さ 2 。 9 
ー さ 2 9 
ー さ 2 . 9 


ー マ 32 9 
ー さ 2 。 9 
ー さ 2。 の 
ー さ 2 。 9 
ー マ 2. 9 


[#] ユ 
E/] 
L/] 
L/ ュ 
L/1 
[/} 
[*] 
L/] 
/] 
[/] 
L/] 
/1 


13. の 
4 日 . の 
48. の 
4 日.。 の 
15.2 
13. の 
ー1 く の 
ー4 日 の 
ー4HB. の 
ー4 日 . の 
ー15.2 
ー1 さく 。g 


199.9 
199.9 
49.9 
49。.9 
ー199.9 
199.9 
ー199.9 
199.9 
ー199。g 
199.9 
ー199. の 
199.9 
56.9 
74. の 
74.9 
56.9 
56.9 
56.9 
74.9 
74. の 9 
56. の 9 
うっ 6. 9 
56.9 
56- 9 
74. の 
74.9 
74. の 
74. の 
56.9 
56. 9 
っ ら 6。 の 
56.g 
69. の 
79g. の 
79.9 
6 り .。 の 
69.9 
69.。 の 
7 のり .9 
79. の 
69. 9 


5 の . の 
ら コウ. の 
1 の 9. の 
さ の . の 
14. の 
So. の 
S ら の. の 
に し 過 り 
1 の 9. の 
さ の の 
14.9 
ら 59. の 


NN ムー 

ト mm ひ の omoQQQoo 
SO 
QQQQQQQSQSQSQQSQSGSQSSSG 


QQQQQQQ 


ビビ 
ト N ぉ QQQQOOOmOO 
QQQQGQQGQQGQGQQGQQQQQQQGQQGQQ 


こつ は は 
IE 
ee 


7Z7 


N 
っ 
SQQGQESEQGRQGQQGSQGQGSQGQGSQQGQSRSQGQGQGQSRQ 


NN い 
陣地 02 に お まめ (9 ・ 介 ま っ 


DDNDD 
に 


-8B4. の 
ー84. の 
ーB ヨ 4 の 
ー-B の . の 
ーBg. の 
ーB9.。 の 
ーBg. の 
ーB4 の 
ー-B ヨ 4. の 
ー-B4. の 
ー-B4. の 
47.9 
6 さ 。 9 
68.9 
68.9 
6 さ 3. の 
47.9g 
47。9 
47。.9 
6 さ 。9 
6 日 。g 
6 9 
6 さ 。@ 
47。.9 
47。g 
47。.9 
47.9 
6 さ 。@ 
6 さ . 9 
68.9 
68. 9 
68.9 
68。 の 
6 さ . の 
6 さ . 9 
47.9 
47. の 
47.9 
47。. の 
うっ 1 . 9 
64. の 
64.9 
ら 51 . り 
ら 1 - の 
64 。 の 
64. の 
51 .g 
っ ら 1 。 り 
ら 51.9 
64. の 
64 の り 
64 . 9 
64。 の 
うら 1 . 9 
51 .g 
48.9 
92. の 
92.。 の 
6。@ 
74.9 
66. 9 


NN ビー 
っ 感 二天 六 ) 雪が GL 


QQQQQQGQGQGQGQQQGQQGQGQGQGQGQQGQQGQQQBS 


NNDDD) に ヒー ヒビ 
い ビ ビー お お 


74.9 
B4.9 
に に デア 4*」 
らら 6.@ 
36. の 
66. 9 
66。9 
74.9 
74.9 
84 .9g 
4 。g 
56-@ 
うっ 6. 9g 
ー-88.@ 
ー64 。 9 
ー64 .9 
ー88. 9 
ー-8- 9 


7 74 5 章 3 次 元夫 用 プ ログ ラム 3 凍 


周 家 の 間 取 り 


No- SYS 中 ZZ) 

1 L*]  -69.9 192.0 9.9 

2 t/] 62.9 192.9 9.9 

に t/] 62.0 2.0 の 9. の 

4 [/] 192.9 2.9 9.9 

5 [/] 192. -1092.9 9.9 

6 [/]  -B2.g -192.0 9.9 

7 t/]  -B2. の  -18.g g- の OBCM2BIRIN 
B E/] 42.9  -18. の g.9 

9 L/ コ 42.9  -78.g 9.9 

19 t/] SB.9  -78.g 9.9 

11 t/] SB.g 98.g g.9 

12 L/ コ 2.9 98.9 9.9 

1 t/] 2.g 69. の g.9 

14 t/] -2.9 69.9 g.9 

15 E/ コ -2.9 98.9 9.9 

16 t/]〕  -69.9 98.9 g.9 

17 [/]  -69.9 1 の 2.g 9.9 区 CO 
18 L*]  -69.9 192.0 52.9 


19 上 /1 62。9 1 の 02. の 52 9 


29 L/] 62。 の 2.9 52.g 

21 [/] 192。 の 2。9 52. ロ g 

22 [/] 12.9 -192.0 52.9 | 5 た 9 St 
2 さく [/] - ヨ 2. の  -192.9 52.9 7 [*] っ. の 9 昌 。 の g.9 
24 [/] ー ヨ 2 。 9 ー18.9 52.9 | に 1:| [/] 2.9 9. の 2。 の 
レッ 上 /] 42。.9 ー1 日 。g 52. ロ | 9 [*] 2。g 6 の 9。 の の の. の 
26 /1 42.9 ー7B. の 52. の | 69 [/] 2. の g 69。 の 2。 の g 
2 上 /] SB-9  -78.9 コ 2・9 61 [*] ー2.g 69. の 9g.9 
2 は /] S ヨ .9 98.9 S2.9 62 [/] ー ク 2。g 69。 の 2。g 
29 【/1 2。9 9 日 .g 52.g | 6 さ [*] ー2。 の 9 コ 。 の の の. の 
39 /] 2.9 69。. の 52.9 64 [/] ー ク 。 9 98. の 52. の 
さ 1 [/1 ュ ー2.g 69.9 52。9 65 [*] ー69。 の 9 9 昌 。 の の . の 
さ 32 上 /] ー2.9 98.9 っ 2・9 66 E/] ー69 . 9 98. の 52. の 
ささ 上 /} ー6 の . 9 98。.9 S2.9 6 フ 7 [*] ー6g. ウ 1 の 9 の 2. の 9. の 9 
34 上 /1 ー69. 9 192.9 52.9 68 E/] ー69。 の 1 ワ 92.9 52。 の 
35 [*] ー69. の 192。9 9.9 | 69 ま | 62. の ー2。 の の. の 
っ 6 上 /] ー69g. の 192.9 52.9 ん ン | [/] 98。 の ー2。 の 9. の 
さき 7 [#] 62.9 192.9 9.9 フワ 1 [/] 9 昌 . の ー-5 昌 . の g. の 
38 上 /1 62.9 192.9 52.9 フク [/]1 62。9 ー-58. の 9. の 
vi [#] 62.9 2.9 9.9 フ さ [/]1 62。 の ニーク の の. の 
49 [/] 62.9 2.9 5S2.9 74 [*] 62。 の ー2。 の ら 52. の 
41 [#] 1 の 2。9 2。. の 9. の 9 75 [/] 9 ヨ . の ー2。 の 52. の 
42 [/] 192.9 2.9 52.9 76 [/1 98. の 9 -5. 9 52. の 
人 4 る [=] 1g2.g  -192.9 9.9 ファ [/] ら 62. の ー5 日 - の 52.。 の 
人 4 上 /] 192.9  -192.9 52 9 78 L/] 62。9 ー2。 9 52. 9 
45 [ テ ] ー ヨ 2.g 一 1 の 2.9 り . の フ 9 【*] ら 62。 の ー フ 。 の のり . の 9 
46 [/} ー82.9  -192.9 S2. 9 9 [/] 62。 の 9 ー2。 の 52. の 9 
4 フ [#*] ー コ 2. 9 ー1 昌 . の g.g 1 [上 *] 9 。 ウ ー2。 の り . の 
4 上 /] ー82 . 9 ー1B。 局 52.9 82 t/1 98。9 ー2。 9 52 9 
49 [#] 42.9 ー1 ヨ 8. の 9.g 8 さ [#] 98。 9 ー5 日 。 の .9 
5 [/} 42。9 ー18。.9 52。9 4 [/] 98。 の 9 ー-5 ヨ . 9 52. の 
51 [を ] 42。g ー フ 78. @g り .9 85 上 #*] 62。 の ー-58. の ワウ .g 
52 [/] 42。.g ー78.@g 52 の 86 【/] 62。 の -58. の 52 。 9 
に た ・ [ *] 5 ヨ . 9 ー フ 7 日 - の g.9 に 4 【*] 62。 の ー2。 の のり. 
54 [/] 58.9 ー78. 9 52.9 88 [/] 62。 ウ ー2. の 52。 の 


0 _ QNO _ Q0 _ Q _ dmmdd 
NQNQNQNQSGNQSNNNNNSSSSS 
DE * O 二 い 間 CR 二 こ * * D 


OOQN OO 
NNNNNQGQQQQ 


UN 


nm _ OUOUOOOUOOU 0 _ 
NRNQRNQNDNNDDDNDNNQQGQQQQQNQONQSNQNSNQ 
OCROSDEED hi 5 3 地 」 * 


QQGQQQGQGQGQGQGQGQGQGQGQGQGQGQQGQGQQQQQQQGQQGQGQGQGQGQGQGQGQGQGQGQGQGQGQGQGQGQGQGSGQGGGQGGQGQGGQGGQGQGQ 


19| 


9] 


9 


19」| 
NNSGNQN 
H 


RGQQGQGQGQGQGQGQGQGQGQ 


Q __ QOOU U_U 
9!WYNIU る PS Wi D h 


9 
QRQQGQQGQSGNSNQGNDNSNNNSGQG 


D 
QQGQQQQGQQSGQGQGQGQGQGQGQGQGRGQGQGQGSQGQGG 


61 
DOESEDIE) 


( 
QNQNQNSNS 


19」| 


UI 


9 
h 
QQGGQGQQGGQGQGQQGQQGGQGQQ 


呈 _  _ 
NQNSNDQGNSDN 


9 


| 


に 」 
h の 7 
QQQGQGQGQQGQQGQQGQQ 


P コ 


トコ コ 
QQQQQQGQQGQQQQ 


1 


OO と こう ち - ま - に 
QQQQQGSNSNQSGNNSSSSGSSSSSSSSS 


SQSQGQGQGQGSQGQGSQSQSSSSGSSSSSSSSSSS 


UI 


まう ちち お らら 9 
半生 し 前 請 1 2 


も よら 
RSRQGSQQGQGQGQGSGQGSQSGRRGG 


お お お 
CESCSPTSCE に CE 


っ 


こま コ 
EE 


QRQQQQQQGQQGQGQGQGGQGQGQRGSGQGQGQGQGQGQGGGQRGGSGQSGSRG 


む 


まま コ 
CEC 


お 
QQQGQGQQQQGQGQGQGQGQSEQGQG 


お 


46.9 
4246. の 9 
46。9 
46。.9 
46。 の 
うっ 6. 9 
56.。 9g 
46.9 
46. の 
12.9 
5 9 
58. 9 
12.g 
12.9 
12.9 
58.9 
に に 有り 
12.9 
12。. 
12.9 
12。.9 
58.9 


9. 9 


69. 9 
69. 9 
69. の 9 
9.9 
9.9 
56. 9 
356.9 
44。.9 
44。g 
56.9 
49.9 
49.9 
24.9 
24 .9 
49.9 
4g。9 
49. の 9 
24.9 
24.9 
49.9 
4 の 9. の 
49.9 
49.9 


し つ つつ トコ ご テー ビー テー ビビ . 
> orPoQooononeoQo 
QQQQGQGQQGQGQSGQSSQSQGQGGSGSSGGSGQGRGGQ 


NNOQOQo 


ほ ーー は 


こう 


pre な 


ma 


や や お ひ QQO 


だ - コ 


ESECECECECE h 
QQQQGQGQGGGQRQGESQQGQGGGGQGQGQGQGQGQGQ 


と SQQQQQQQQQQGQQGQSGQQQ 


ココ 


778 5 意 3 次 元 実用 プロ グラ ム 3 題 


44 さ 上 /] ー69。g 18. の 44。 の 
444 E/] ー69。 の ー18. の 44. の 
445 L/] ー71 . の ー18. の 44. の 
446 E/] ー71 。 の 18。. の 44。. の 
44 フ F#] ー7 1 の 1 昌 。 の の り . の 
448 E/ コ ー7 1 . の 1 昌 . の 44. の 
449 L[*] ー69。 の 18H. の り . の 
45g E/1 ー69.09 18. の 44。 の 
451 【#] ー69。 の ー1 昌 の のり . の 
452 [/1 ー69。 の ー18. の 44。.9 
45 さ [#] ー71 。 の ー18. の の. の 
454 F/] ー7 1 。 の ー18. の 44.0 の 
455 [#] ー71 。 の 18. の の 9. の 
456 [/] ー71 .9 18. の 44. の 
457 上 #] ー709. 6。 の g.9 
458 [/] ー79. の 9 ー1 日 . の の. の 
459 【 テ *] ー7 の の 6. の 42.0 の 
46 の /] ー7 の . の ー18. の 42.9 
461 【#] ー79。 の 6。 の 9. の 
462 /] ー79.9 6. の 42. の 
46 さ [#] ー7 の . の ー1 昌 の g. の 
464 L/] ー79.9 ー18. の 42.9 


金 F-BASIC 活用 ソ フト 3 
ワー プロ と グラ フ 
湖 


FM-7・NEW7・77 で 使え る プロ グラ ム の リス ト と その 使い 方 ・ 操 作 

@ 庄 革 付 簡 易 日 本 語 ワ ー プ ブロ. 縦 印刷 も で きま す 。 

@ ビ ジネス グラ フ と 統計 表 ・ 統 計 グ ラフ . 捜 合 グラ フ も 表示 で きま す . 

@ デ ィ ス ク ユ ー テ ィ リ ティ 。 ア クセ ス の スピ ー ド を アッ プ す る フォ ー マ ッ ト な 


ど 8 
人 FM と PC 間 で 相 末 に ブフ ログ ラム を 読み 込め ます . 
@ その ほぼ ほか, グラ フィ ッ ク バ ネル ・ 金 利 計 算 ・ オ ル ガ ン な ど 計 11 本 収載 . 


空 フロッピー ディスク 頒布 サー ビス 


全 プ ログ ラム 17 本 を ディ スク で 頒布 し て お り ま す . 3.5 チ と ら る 7000 円 で す 
(送料 当社 負担). も の 2 に 現 谷 苦闘 に て 
申し 込み 先 東京 都 文 京 区 本 卿 5-5-18 山海 


本 書 を 暗 入 され た 読者 が 使用 する 場合 を 除き , 本 和書 収載 
の プロ グラ ム の 一 部 また は 全部 を (株 ) 山海 堂 の 許諾 を 
得 な いで , いか な る 方 法 に お いて も 複写 複製 し た り , 
他 に 転 蓄 ・ 転 用 する こと を 禁じ ます 。 

拘 作 上 の 質問 は 具体 的 に 記入 し て 「FM グ クラ フィ ックス 」 
係 宛 お 願い し ます 。 

な ぢ , 入力 ミス や 改造 に よる 質問 は 一 切 お 断わり 致し ま 
す 。 


FM 実践 グラ フィ ックス 


[定価 は カバ ー に | 
左 天 か らら 3 天元 C.CG ま で 一 一 | 表示 レ し て いま す 」 


昭和 60 年 1 月 30H 切 販 第 1 喘 発 行 
昭和 62 年 4 月 30H 弧 第 3 列 発 行 


ス ま 行者 川井 正男 
印刷 所 拉 光 合 印 刷 株 式 会 社 


〒113 東京 都 文 京 区 本 郷 5- 5 -18 
発行 所 と 山 海 宣 振替 東京 4 一 194982 符 
営業 直通 電話 03 一 816 一 1617 一 9 


1985 Tajima 落丁 本 ・ 乱 丁 本 は お 第 


ISBN 4-381-09007 -1 


わか る ・ 楽 し い ・ 役 に 立つ 


[ 山海 堂 発行 ] 
FM-7 プロ グラ ミン ク グ 入門 


高橋 三雄 著 プ B5 判 240 頁 2300 円 
は じ め て プロ グラ ム を 作っ て みよ うと する ユー ザー を 対象 に , 旅費 計算 や 野球 選手 の 
打率 計算 な ど , 身近 に ある 題材 を と りあ げ て , 考え 方 , 組み 立て 方 , 命令 の 意味 ・ 使 
い 方 等 を わか りや すく 説明 し ます 。 読 者 は し ら ず し ら ず の うち に プロ グラ ム 作 り に な 
じ め る よう に 工夫 され て いま す 。 巻 末 に は . ラリ ー ゲ ー ム , お 絵かき , 音楽 。 ス ロッ 
トマ シン , 成績 処理 、 家 計 注 , タテ 横 集計 、 グラ フ 作 成 な ど 15 本 の プロ グラ ム を 収載 
愉 い まず 。 (NEW7/77 に も 使え ます ) 


金 ビ ジネス マン の た め の 


パソ コン 入門 術 


シス テム 科学 研究 所 編 プ B5 変 形 210 頁 1500 円 
現代 は ニュ ー メ ディ ア の 時 代 , 情報 化 社会 …… と 呼ば れる 新しい 時 代 に 移行 し つつ あ 
り ま す 。 こ の ニュ ー エ イジ に 生き る ビジ ネ 導い も の の 
ー つ に パソ コン が あり ます 。 し か し 、 こ れ ま で は 。 バ ソコ ン へ の 対応 に 間違い は な か 
っ 6 対応 の 仕方 に は 、 お か れ た 立場 に より 、 人 それ ぞ れ に 違い が あっ 
当然 で は な いで し ょ うか 。 こ の 本 は 新しい 視点 に 立っ て , 人 それ ぞ れ の 対応 の 仕方 
考え る 手がかり を 与え て くれ る で し ょ う 。 
6 取り 組む た め の 新 し い 発想 @10 語 で ルン ルン プロ グラ ミン グ 
@ パ ソコ ン の 仕組 み と 働き @ お も な 周辺 機器 の は な し 
@ す すむ 0A と メカ トロ ニク ス @ ミニミニ 用 語 し て ん 
@ パ パソ コン を 操作 する に は 


に 


念 対 話 形 式 に よる 山海 堂 発行 
FM-7 わく わく 活用 入門 


青木 徹 著 プ B5 判 226 頁 2100 円 
入門 の 失 階 か ら 抜け 出 た いと 思っ て いる ユー ザー を 対象 に し た 本 。 洪 字 の 簡単 な 入力 
法 。 表 の 作り 方 , 並べ 芋 え 、 検索 法 。 中間色 の 出し 方 、 ミ ュー ジッ ク の 楽し み 方 , 画 
面 の モー プ ・ ロ ー ド ルー チン , 部 分 スク ロー ルル ー チ ン , クイ ッ ク ソ ー ト ルー チン , 
数 値 編集 ルー チン な どの 人 各種 ルー チン 。 グラ フィ ッ ク シ ン ボ ポル エディ タク プログ ラム 
スロ ッ ト マ シン ゲー ム プ ログ ラム な ど , 内 容 型 富 な 12 詞 で す 。 

(NEW7/77 に も 使え ます ) 


金 BASIC か ら 入 る 


FM マシン 語 入 門 の 手引 き 


鹿野 哲郎 著 / B5 判 変形 200 頁 / 1900 円 


人 傘 々 の マシ ン 語 の 仙人 に 入っ て み ま せん か . BASIC も マシ ン 語 に ホン ヤク さ 
れ で ば は じ の め て ラジ ピュ ー ダ 和 理解 され る の で す . この 本 で は , みな さん が 知っ て い 
る B A S I C を 使っ て マシ ン 語 を いじ し る こと か ら ス ター ト し ます . そう すれ ば 意外 と 
近づき や すい の で す . 雑誌 の マシ ン 語 プロ グラ ム を 打ち 込ん て 使う 時 の チェ ッ ク サ ム 
0 簡易 アモ ンプ ラ の プロ グラ ム , マシ ン 語 を 楽に 入力 で きる プロ グラ 
等 も 級 せ て あり ます . これ ら を 道具 と し て 使っ て マシ ン 語 に 親しん で み ま し ょ う . 
ノ N ド ソ コン を 久 「 ま で し ゃ だ る 使い 方 ち マ シン 語 を 使え ば で きる の で す . この 本 で , そん 
な パソ コン ライ フ の スク ー ト を 切っ て は どう で し ょ う . 


念 FM-7・NEW7・77 


活用 ソフ ト 1 
F IMI: ププ 
シス テム 科学 研究 所 編 プ B5 判 192 頁 ノ 2100 円 
F M-7 シ リー ズ は , ゲ ー ム マシ ン と し て ば か り で な (間瀬 な : 力 を 持っ て お り ま す . スモ 
ー ル ビジ ネス に 65 立派 に 使用 で きる の で す . 本 書 で は , 給与 計算 , 項目 を 自由 に 設定 
で きる 名 短 管 理 , 販売 管理 , 在庫 管理 の 3 本 の プロ グラ ム を 収載 し , 詳細 な 操作 方 法 
を 述べ て お り ま す . 名 簿 管 理 は 項目 を 自由 に 設定 で きま す の で 個人 ユー ザー に も 非常 
に 使 利 を な ちの で す . 
ーー フロ ッ ピ ビー ディ スク 当 布 し ます 一 一 
5 インチ 8000 円 3.5 イ ンチ 8500 円 
詳細 は 本 の 日 次 前 を ご 覧 くだ さい . 


金 実 務 に 役立つ フロ ッ ピ ー の 使い 方 山海 堂 発行 


F IM テ ディ スク ファ イル 活用 法 


竹本 篤郎 著 プ B5 判 176 頁 / !800 円 


フロ ッ ピ ー デ ィ ス ク を 活用 する こと に よっ て パソ コン ライ フ は 大 きく 広がり ます 。 処 
理 ス ピー ド , 扱え る デー タ 量 か らい っ て も フロ ッ ピ ー な し に は パソ コン ライ フ は 考え 
られ な い 段 階 に 来 て いる と いえ る で し ょ う . 本 書 は 顧客 管理 。 単価 表 等 の プロ グラ ム 
例 を 使っ て ,。 シー ケン シャ ルフ ァイル , ラン ダグ ム ファ イル に お ける デー タ の 書き 込み 。 
読み 出し , 訂正 , 削除 等 の 使い 方 を て いね い に 説 明 し て お り ま す . また , ディ スク 空 
骨 を 無駄 な く 使 うた め の 方 法 と そして, インデ ックス ファ イル の 作り 方 . 使い 方 も 述べ 
て お り ま す . 各 意 と も 基礎 か ら 応 用 に わた っ て 入門 者 に も 理解 で きる よう に 工夫 され 
た 好 入 門 書 です 


金 わ か る ・ 楽 し い ・ 役 に 立つ (FM-7・NEW7・77) 
F M-7 フロ クラ ミン ク 入 門 
高揚 三雄 著 プ B5 判 ノ 2,300 円 


お 遊び , 家庭 。 仕事 な どの 身近 に ある 基 材 を と り 上 げ て , 
プロ グラ ム を 作る 時 の 考え 方 , 作り 方 , 欧 展 の させ 方 等 
を や さ し く 脱 明 . 巻末 に プロ グラ ム 集 付き . 


久 F-BASIC 活用 ソフ ト (FM-7・NEW7・77) 
ワー フロ と グラ フ 
潮 守 奏 ノ B5 判 2,100 円 


@ 辞 交 付 日 本 語 ワ ー プ ロ @ ビジ ネス グラ フ 

@ 統計 表 と 統計 グラ フ @ ディ スク ユー ティ リティ 
@ FM< 一 >P で 変換 プロ グラ ム は か 

※ デ ィ ス ク 頒 布 サ ービス あり ます . 


人 対 話 形式 に よる (FM-7・NEW7・77) 
F M-7 わく わく 活用 入門 
育 木 役 蒼 プ B5 判 ノ 2,100 円 


@ グラ フィ ックス を 楽し も う  @ 表 を 作っ て みよ う 
@ 江 字 の 使い 方 @ 簡易 ソフ ト VIP の 活用 法 
@ 活用 テク ニッ クル ー チ ン 便利 な 付録 ・ 楽 し い 付 録 


久 基 礎 か ら 3 次 元 CG まで (FM-7.NEW7-77) 
F Me 有 グ ラフ ィ ッ クス 
田島 清司 著 B5 変 形 プ 1,800 円 


グラ フィ ッ ク の 共 環 か ら 始 め 、 せ ず か し い 数 学 を ど は 依 
わな いで 3 大 元 を 実数 す る 、 カン ド つ コロ を 押さ えて 平易 
に 解説 ジィ スク 布 サー ビス あり ます . 


念 F-BASIC (FM-7・NEW7・77) 
ゲー ム 作 り の ノー ハウ 
ナラ シノ マイ コン クラ ブ 著 ププ B5 ン 2,300 円 


BASIC だ け を 使っ て 。 ゲー ム 作 り の テク ニッ ク や ノー ハ 
ウ を 明らか に し ます .。 パタ ー ン ジェネ レー タ ,。 サウ ンド 
ジェ ネ レ ー タ の ほか サン プル ゲー ム の リス ト を 収 僅 . 


金 ビ ジネス に 役立つ (FM -7・NEW7・77) 
FM 活用 ソフ ト 1 
B5 判 192 頁 2100 円 


スモ ー ル ビジ ネス 用 に プロ グラ ムリ スト を 収載 し , その 
使用 法 を 述べ ます . 給与 計算 ・ 販 売 答 理 ・ 在 庫 管 理 ・ 全 
貞 名 和 澄 笠 理 な ど . 


金 実務 に 役立つ (FM-7・NEW7-77) | 金 BASIC か ら 入 る (FMI-7.NEW7-77) 
(そり ディ スク ファ イル の 活用 法 (で ゆい マシ ン 語 入門 の 手引 き 
B5 判 176 頁 BS 変形 200 頁 プ 」900 円 


ディ スク を 使う こと に よっ て パソ コン 活用 の 範 環 は 大 き 
く 広 が り ま す . 実務 に 役立つ 使い 方 の 基 喝 か ら 応 用 まで 
を 入門 者 に も 分 か る よう て いね い に 解 説 し て いま す . 


論 味 津々 の マシ ン 艇 を 読 者 の な じん で いる BASIC か 
ら ア タッ ク 。 初め て マシ ン 政 を か じ し っ て みよ うと 思っ て 
いる 人 , 足 路 み し て いる 人 へ の お すす め 本 で す . 


人 ビ ジネス マン の た め の 
パソ コン 入門 術 
シス テム 科学 研究 所 B 5 変形 1,500 円 


情報 化 社会 に お ける パソ コン と の 対応 の 仕方 ・ 使 い 方 ・ 
簡単 を プロ グラ ミン グ ・ 周 辺 機 宮 の 話 ・ 授 作法 ・0A と 
プ メカトロニクス の は な し な を ど 洪 僚 、 


山海 営 発行 


親子 で 楽 しめる (1Z-700・MMZ1500) 
MIZ-70 は プロ グラ ミン グ 入 朋 
高 描 三 雄 著 ノ B5 判 2,300 円 


各 機 種 と 互換 性 の 高い HuBASIC を 使い , プロ グラ ム の 
作り 方 , 並べ 碧 え や 欄 索 の 仕方 , 血 易 旨 請 HuCAL の 使 
い 方 を 往 高 実例 で 解説 プロ グラ ム 集 付き . 


第 3 意 
実践 プロ グラ ミ シ グ 


第 4 章 
次元 ク グラ イッ ク ヌ % 


ISBN4-381-09007-1 C3055 \1800E 
山海 堂 定価 1800 円