数学座標を表示する画面の座標に変換するモジュール

Math2Disp モジュールサンプル

数学座標を表示する画面の座標に変換するモジュールです。グラフとか書くときに使うと便利かも?グリッドを描画する機能なんかもついてます。

サンプル

#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

インフォメーション

公開日時
2007年10月17日 午後4時52分30秒
最終更新日時
2007年12月20日 午後5時33分18秒
カテゴリ
HSP