N88-BASICでグラフ

 

ネット上で、 

x2 + (y - √|x|)2 = 1

 

という式を見つけました。

これを描いてみようと思います。

 

式変形して

x2 + y2 - 2(√|x|)y + x = 1

y2 - 2(√|x|)y + x2 + x - 1 = 0

 

2次方程式の解の公式より、

[y2 + 2by + c = 0, y = -b±√(b2 - c)]

 

y = √|x|±√{x - (x2 + x - 1)}

y = √|x|±√(1 - x2)

(-1≦x≦1) … √内≧0より

 

 

NL-BASICとnl~.zip(graph.bas)は

以下のリンクからダウンロードできます

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい

 

下記リストをマウスで選択しCtrl+cでコピーし、

NL-BASICの画面でAlt+v(Ctrl+vではないので注意)

でプログラムを読込めます。

 

graph.bas

 

100 '----------------------------------------------------------------------
110 ' x^2 + (y - √|x|)^2 = 1
120 ' y = √|x|±√(1 - x^2)    (-1≦x≦1)
130 '----------------------------------------------------------------------
140 CLS 3     '--- 画面消去
150 C   =   2 '--- 色
160 CX  = 320 '--- 原点座標
170 CY  = 200
180 LX  = 100 '--- x=1をlx dotで描く
190 LY  = 100
200 OX  =  CX + (-1 * LX) '--- 初めの点
210 OY1 =  CY - ( 1 * LY)
220 OY2 =  CY - ( 1 * LY)
230 FOR X=-1 TO 1 STEP 1 / LX
240   B = SQR(ABS(X))
250   D = SQR(1 - X * X)
260   Y1 = B + D         '--- ±の点
270   Y2 = B - D
280   PX  = CX + X  * LX '--- 現在の点
290   PY1 = CY - Y1 * LY
300   PY2 = CY - Y2 * LY
310   LINE(OX, OY1)-(PX, PY1), C
320   LINE(OX, OY2)-(PX, PY2), C
330   OX  = PX
340   OY1 = PY1
350   OY2 = PY2
360 NEXT

 

 

N88-BASICをお持ちでない方は、

以下のVL-BASICかNL-BASICで、

動かして下さい。

(どちらもWindows用です。)

上記プログラムリストをコピペして

テキストファイルを作るか、

(Noteで作るときはANSI形式で保存しないと漢字が化けます。)

テキストファイル(graph.basまたはgraph.txt)

をダウンロードして、

NLBasic.exeまたは、VLBasic.exe

に重ねると動きます。

 

VL-BASIC(N88-BASIC互換?)ホームページへのリンク

 

NL-BASIC(N88-BASIC互換?)ホームページへのリンク

 

ホームページに書いてあるパスワードを入力して、

Readme.txtを読んで、遊んで見て下さい。