図形科学・サンプルプログラム

課題401について、修正前と修正後のプログラムを併せて示します。 描画命令以外の相違点について、着色して強調してあります。

修正前

10 !SAVE "C:E40-0401.BAS",A
20 CHANGE DISP "80HC0"
50 DEG
60 REM GRAPHIC SCIENCE
70 REM #46 CLASS NO.__
80 REM NO.__  NAME _.________
90 REM DATE 1998.8.25
100 REM CHAPTER 3 ORTHOGONAL PROJECTION
110 REM SECTION 1 PROJ. OF POINT,LINE,TRIANGLE
120 REM LESSON 1 POINT,LINE,TRIANGLE
150 REM ----- INITIAL CONDITION -----
160 GOSUB 320 : REM --- G.L. ---
170 N=6
180 DIM X(N),Y(N),Z(N),H$(N),V$(N)
190 DATA 60,120,100,"a","a'" : REM --- A ---
200 DATA 160,100,50,"b","b'" : REM --- B ---
210 DATA 260,40,90, "c","c'" : REM --- C ---
220 DATA 340,120,40,"d","d'" : REM --- D ---
230 DATA 400,40,140,"e","e'" : REM --- E ---
240 DATA 500,100,70,"f","f'" : REM --- F ---
250 REM ---------- MAIN PROGRAM ----------
260 GOSUB 440 :REM --- READ DATA ---
270 GOSUB 490 :REM --- POINT ---
280 GOSUB 670 :REM --- LINE ---
290 GOSUB 930 :REM --- TRIANGLE ---
300 SCALE OFF : END
320 REM ---------- SUB *GL* ----------
330 SCALE -40,-200,599,199,0,0,639,399
340 LINE 0,0;550,0,4
350 GCHR -20,10,"G",0,7
360 GCHR 570,10,"L",0,7
430 RETURN
440 REM ---------- SUB *READ DATA* ----------
450 FOR I=1 TO N
460 READ X(I),Y(I),Z(I),H$(I),V$(I)
470 NEXT I
480 RETURN
490 REM ---------- SUB *POINT* ----------
500 !----- PLAN -----
510 CIRCLE X(1),Y(1),3;;6,N
530 ! ----- ELEVATION -----
540 CIRCLE X(1),-Z(1),2;;6,P
560 ! ----- LINE OF PROJECTION -----
570 LINE X(1),Y(1);X(1),0;X(1),-Z(1),"A",6,N
600 ! ----- NAME A -----
610 GCHR X(1),Y(1)+20,H$(1),0,6
620 GCHR X(1),-Z(1)-4,V$(1),0,6
660 RETURN
670 REM ---------- SUB *LINE* ----------
680 ! ----- PLAN -----
690 LINE X(2),Y(2);X(3),Y(3),6,N
710 ! ----- ELEVATION -----
720 LINE X(2),-Z(2);X(3),-Z(3),6,N
740 ! ----- LINE OF PROJECTION -----
750 LINE X(2),Y(2);X(2),0;X(2),-Z(2),"A",6,N
760 LINE X(3),Y(3);X(3),0;X(3),-Z(3),"A",6,N
810 ! ----- NAME B,C -----
820 GCHR X(2)-10,Y(2)+20,H$(2),0,6
830 GCHR X(3)+4,Y(3)+20,H$(3),0,6
840 GCHR X(2)-10,-Z(2)-4,V$(2),0,6
850 GCHR X(3)+4,-Z(3)-4,V$(3),0,6
920 RETURN
930 REM ---------- SUB *TRIANGLE* ----------
940 ! ----- PLAN -----
950 LINE X(4),Y(4);X(5),Y(5);X(6),Y(6),6,F
990 ! ----- ELEVATION -----
1000 LINE X(4),-Z(4);X(5),-Z(5);X(6),-Z(6),6,F
1040 ! ----- LINE OF PROJECTION -----
1050 LINE X(4),Y(4);X(4),0;X(4),-Z(4),"A",6,N
1060 LINE X(5),Y(5);X(5),0;X(5),-Z(5),"A",6,N
1070 LINE X(6),Y(6);X(6),0;X(6),-Z(6),"A",6,N
1140 ! ----- NAME D,E,F -----
1150 GCHR X(4)-10,Y(4)+20,H$(4),0,6
1160 GCHR X(5)+4,Y(5)-4,H$(5),0,6
1170 GCHR X(6)+4,Y(6)+20,H$(6),0,6
1180 GCHR X(4)-10,-Z(4)-4,V$(4),0,6
1190 GCHR X(5)+4,-Z(5)-4,V$(5),0,6
1200 GCHR X(6)+4,-Z(6)-4,V$(6),0,6
1300 RETURN

修正後

rem GRAPHIC SCIENCE
rem #46 CLASS NO.__
rem NO.__  NAME _.________
rem DATE 1998.8.25
rem CHAPTER 3 ORTHOGONAL PROJECTION
rem SECTION 1 PROJ. OF POINT,LINE,TRIANGLE
rem LESSON 1 POINT,LINE,TRIANGLE
rem ----- INITIAL CONDITION -----
gosub *GL : rem --- G.L. ---
N=6
dim X(N),Y(N),Z(N),H$(N),V$(N)
data 60,120,100,"a","a'" : rem --- A ---
data 160,100,50,"b","b'" : rem --- B ---
data 260,40,90, "c","c'" : rem --- C ---
data 340,120,40,"d","d'" : rem --- D ---
data 400,40,140,"e","e'" : rem --- E ---
data 500,100,70,"f","f'" : rem --- F ---
rem ---------- MAIN PROGRAM ----------
gosub *DATA :rem --- READ DATA ---
gosub *POINT :rem --- POINT ---
gosub *LINE :rem --- LINE ---
gosub *TRIANGLE :rem --- TRIANGLE ---
input "",A$
end
rem ---------- SUB *GL* ----------
*GL
window (-40,-200)-(599,199)
color 7,2 : cls
line (0,0)-(550,0),pset,9
symbol (-20,-10),"G",1,1,15
symbol (570,-10),"L",1,1,15
return
rem ---------- SUB *READ DATA* ----------
*DATA
for I=1 to N
read X(I),Y(I),Z(I),H$(I),V$(I)
next I
return
rem ---------- SUB *POINT* ----------
*POINT
' ----- PLAN -----
circle (X(1),Y(1)),3,13
' ----- ELEVATION -----
circle (X(1),-Z(1)),2,13,,,,f
' ----- LINE OF PROJECTION -----
line (X(1),Y(1))-(X(1),0),,13,,dot
line (X(1),0)-(X(1),-Z(1)),,13,,dot
' ----- NAME A -----
symbol (X(1),Y(1)+4),H$(1),1,1,13
symbol (X(1),-Z(1)-20),V$(1),1,1,13
return
rem ---------- SUB *LINE* ----------
*LINE
' ----- PLAN -----
line (X(2),Y(2))-(X(3),Y(3)),,13
' ----- ELEVATION -----
line (X(2),-Z(2))-(X(3),-Z(3)),,13
' ----- LINE OF PROJECTION -----
line (X(2),Y(2))-(X(2),0),,13,,dot
line (X(2),0)-(X(2),-Z(2)),,13,,dot
line (X(3),Y(3))-(X(3),0),,13,,dot
line (X(3),0)-(X(3),-Z(3)),,13,,dot
' ----- NAME B,C -----
symbol (X(2)-10,Y(2)+4),H$(2),1,1,13
symbol (X(3)+4,Y(3)+4),H$(3),1,1,13
symbol (X(2)-10,-Z(2)-20),V$(2),1,1,13
symbol (X(3)+4,-Z(3)-20),V$(3),1,1,13
return
rem ---------- SUB *TRIANGLE* ----------
*TRIANGLE
' ----- PLAN -----
line (X(4),Y(4))-(X(5),Y(5)),,13
line (X(5),Y(5))-(X(6),Y(6)),,13
line (X(6),Y(6))-(X(4),Y(4)),,13
' ----- ELEVATION -----
line (X(4),-Z(4))-(X(5),-Z(5)),,13
line (X(5),-Z(5))-(X(6),-Z(6)),,13
line (X(6),-Z(6))-(X(4),-Z(4)),,13
' ----- LINE OF PROJECTION -----
line (X(4),Y(4))-(X(4),0),,13,,dot
line (X(4),0)-(X(4),-Z(4)),,13,,dot
line (X(5),Y(5))-(X(5),0),,13,,dot
line (X(5),0)-(X(5),-Z(5)),,13,,dot
line (X(6),Y(6))-(X(6),0),,13,,dot
line (X(6),0)-(X(6),-Z(6)),,13,,dot
' ----- NAME D,E,F -----
symbol (X(4)-10,Y(4)+4),H$(4),1,1,13
symbol (X(5)+4,Y(5)-20),H$(5),1,1,13
symbol (X(6)+4,Y(6)+4),H$(6),1,1,13
symbol (X(4)-10,-Z(4)-20),V$(4),1,1,13
symbol (X(5)+4,-Z(5)-20),V$(5),1,1,13
symbol (X(6)+4,-Z(6)-20),V$(6),1,1,13
return

[図学メモへ] [防衛大学校へ] [水工学研究室へ]
tada@nda.ac.jp