数学座標を表示する画面の座標に変換するモジュールです。グラフとか書くときに使うと便利かも?グリッドを描画する機能なんかもついてます。
#include "hspmath.as"
m2d_SetSize 32, 32
m2d_SetPos 320, 240
redraw 0
color 255, 255, 255 : boxf
color 192, 192, 192
m2d_DrawGrid
// 極座標
color 255, 0, 0
theta = 0.0
repeat
radius = theta
if ( cnt == 0 ) {
pos m2d_GetDispX( cos( theta ) * radius ), m2d_GetDispY( sin( theta ) * radius )
} else {
line m2d_GetDispX( cos( theta ) * radius ), m2d_GetDispY( sin( theta ) * radius )
}
if ( theta > deg2rad( 360 * 3 ) ) : break
theta += deg2rad( 1.0 )
loop
// 一次関数
color 0, 0, 255
x = m2d_GetMathX( 0 )
y = x * 2 + 3
pos m2d_GetDispX( x ), m2d_GetDispY( y )
x = m2d_GetMathX( ginfo_sx - 1 )
y = x * 2 + 3
line m2d_GetDispX( x ), m2d_GetDispY( y )
// サインカーブ
color 128, 0, 128
m2d_GetEdgeMathX x, endX
repeat
y = sin( x )
if ( cnt == 0 ) {
pos m2d_GetDispX( x ), m2d_GetDispY( y )
} else {
line m2d_GetDispX( x ), m2d_GetDispY( y )
}
if ( x > endX ) : break
x += 0.1
loop
// 二次関数
color 0, 128, 0
m2d_GetEdgeMathX x, endX
repeat
y = x * x * 0.5 + x * 2 - 3
if ( cnt == 0 ) {
pos m2d_GetDispX( x ), m2d_GetDispY( y )
} else {
line m2d_GetDispX( x ), m2d_GetDispY( y )
}
if ( x > endX ) : break
x += 0.1
loop
redraw 1