あと座標が(なんでもいい,0)の点Aがあるとします。
そしてマウスでクリックした地点を点Bとします。
直線PAと直線PBの成す角を求めるスクリプトがわかりませんorz
一応それらしいスクリプトはできたんですが、
数値が予想どうり(60°とか90°)になりません。
下がそのスクリプトです。
変数の説明
#include "hspmath.as" #include "hspdxfix.as" #include "hgimg3.as" hgini es_ini 1,1,360 //点を打つ関数 #module #deffunc point int big//point 直径 circle ginfo_cx-big,ginfo_cy-big,ginfo_cx+big,ginfo_cy+big return #global screen 0,500,500 pos 250,250 point 5 color 50,50,200 while Px=250:Py=250:Bx=mousex:By=mousey wait 1 stick key,256 if key==256{ pos mousex,mousey point 3 //計算式 余弦定理によって成す角を求める b=Bx-Px bb=pow(abs(Bx-Px),2) p=By-Py pp=pow(abs(By-Py),2) fsqr a,bb+pp aa=pow(a,2) ue=aa+bb-pp shita=2*a*b if shita==0:kakudo=0:else:kakudo=ue/shita mes ""+kakudo es_cos fval,abs(kakudo) title""+fval } wend
変数Axは点Aのx座標で変数PyはPのy座標と言った具合です。
aが三角形ABPの辺aの長さで
aaがその二乗です。
ueとかshitaは
a^2+b^2-p^2
cos∠p=-----------
2ab
の上下です。
なんか説明不足のところがあったら指摘してください。