一周は2πラジアンだから計算式はえーと…と考え無くていいです。度(弧度法)のままで考えていいんです。
でも単位が違うので使う時は単位を変換する計算は必要です。
HSPではこれを意識しなくても簡単に変換できるマクロdeg2radとrad2degが用意されています。
どちらも角度を表す数字で単位が違うだけなのです。変換はマクロに投げちゃいましょう。
三角関数はよく分からなくても何とかなったりもしますが、ベクトルはそうは行きません。
ベクトルを修得するならまず2次元(平面)から入ってください。2次元と3次元はほとんど同じなので簡単な方から入ってください。
習得はは基本レベルなら難しくありません。必ず図で説明してるサイトを見てください。図が重要です。
数字を使った計算いりませんし。sin,cosナニソレ?なレベルで大丈夫です。
中学生でも実用レベル(ゲーム作成に利用できるレベル)の知識は習得できると思います。
ショーグンさんのサンプルをもう少し理解しやすい?ように書き換えてみました。
;--ここから無視してください--------------------------------
#module
; 矢印描画モジュール
#deffunc arrow int x1, int y1, int x2, int y2
t = sin(deg2rad(15))
x = double(x2-x1) / 10.0
y = double(y2-y1) / 10.0
xx = x * cos(t) - y * sin(t)
yy = y * cos(t) + x * sin(t)
line x1, y1, x1+xx, y1+yy
xx = x * cos(-t) - y * sin(-t)
yy = y * cos(-t) + x * sin(-t)
line x1, y1, x1+xx, y1+yy
line x1, y1, x2, y2
return
#global
;--ここまで無視してください--------------------------------
#include "d3m.hsp"
;見やすい位置に移動するために、描画位置をX方向にcx、
;Y方向にcyだけ平行移動しています。
; 中心座標
cx = ginfo_winx/2
cy = ginfo_winy/2
; 長さ
rr = 160
repeat
redraw 0
; 画面クリア
color 0,0,0
boxf
; d3rotate "回転"命令
; 一周は360度。
; 「ベクトル(0,rr)」を1度ずつ回転させます。
;
d3rotate x,y, 0,rr, deg2rad( deg )
; 回転角を1度増やす
deg++
if val=360 :val=0
; 座標軸描画
color 127,127,127
line 0,cy,ginfo_winx,cy
line cx,0,cx,ginfo_winx
circle -rr+cx, -rr+cy, rr+cx, rr+cy, 0
pos cx, cy+rr : mes "+X"
pos cx+rr, cy : mes "+Y"
color 255
arrow 0+cx, rr+cy, cx, cy
pos ginfo_cx+10, ginfo_cy-30 : mes "回転する元のベクトル"
; 回転後のベクトル(矢印)を描画
color 128,255,192
bx = cx+x : by = cy+y
;boxf bx-4,by-4,bx+4,by+4
;line bx, by, cx, cy
arrow bx, by, cx, cy
; val値描画
pos bx,by+10
mes "deg = "+deg+" [度]"
mes "x="+x : mes "y="+y
redraw 1
await 34
loop