HSP로 레이더 그리기

1976 단어 설달HSP
유행에 뒤떨어진 느낌이지만 HSP로 주름이 잡혀서 올려놨어요.

원자재
프로그램 드로잉
소스 코드
tyy씨 말로는별도로 필요하다.
다운로드rec.hsp 파일을 같은 디렉터리에 설정하십시오.
N의 값을 조절하여 적당한 시간 안에 완성할 수 있다.
sida.hsp

#include "hsp3dish.as"
#include "m_rec.hsp"

rec_init 100000

#module

#defcfunc W1x double px, double py
return 0.836 * px + 0.044 * py

#defcfunc W1y double px, double py
return -0.044 * px + 0.836 * py + 0.169

#defcfunc W2x double px, double py
return -0.141 * px + 0.302 * py

#defcfunc W2y double px, double py
return 0.302 * px + 0.141 * py + 0.127

#defcfunc W3x double px, double py
return 0.141 * px - 0.302 * py

#defcfunc W3y double px, double py
return 0.302 * px + 0.141 * py + 0.169

#defcfunc W4x double px, double py
return 0.0

#defcfunc W4y double px, double py
return 0.175337 * py

#global

#const N 20

    screen 0, 640, 480

*main

    // 画面の書き換えを止める
    redraw 0

    color 255, 255, 255
    boxf

    pos 10, 10
    color 0, 0, 0
    mes "Drawing..."

    k = N
    x = 0.0
    y = 0.0

    rec_begin k, x, y

        if (0 < k) {
            rec_call k-1, W1x(x, y), W1y(x, y)

            if (rnd(3) == 0) :rec_call k-1, W2x(x, y), W2y(x, y)
            if (rnd(3) == 0) :rec_call k-1, W3x(x, y), W3y(x, y)
            if (rnd(3) == 0) :rec_call k-1, W4x(x, y), W4y(x, y)
        } else {
            color 0, 255, 0
            dx = int(x*ginfo_winx) + ginfo_winx/2
            dy = ginfo_winy - int(y*ginfo_winy)
            boxf dx, dy, dx+1, dy+1
        }
    rec_end

    color 255, 255, 255
    boxf 0, 0, 100, 100
    pos 10, 10
    color 0, 0, 0: mes "Finished"

    // 画面の書き換えを反映
    redraw 1

좋은 웹페이지 즐겨찾기