●円弧

「●円弧」の編集履歴(バックアップ)一覧はこちら

●円弧」(2009/05/31 (日) 17:30:33) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*情報 作者名:五十六 引用元:[[なでしこプログラム掲示板「関数「円弧」」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=919&rev=&no=0]] *概要 円弧を描画します。 *解説 引数「補正」は、↓の長さ #image(mudai3.PNG) ***引数 OBJ:描画先 A:座標その1。 B:座標その2。 補正:円の膨らみ具合 方向:「上」か「下」か(右だったら上、左だったら下)。 ***返り値 なし *サンプルプログラム 線太さ=「3」。 「100,200」と「200,100」から「50」の「下」で円弧。 線色=赤色。 「250,250」と「350,350」から「20」の「上」で円弧。 線太さ=「5」。 「400,100」と「400,300」から「5」の「上」で円弧。 *//本体 ●円弧({グループ=?母艦}OBJのAとBから補正の方向で)   A=Aを「,」で区切る。   B=Bを「,」で区切る。   A[1]=A[1]×(-1)。//逆にしとく   B[1]=B[1]×(-1)。//逆にしとく   もし、A[0]=B[0]ならば、B[0]=B[0]+1。//苦肉の策   もし、A[1]=B[1]ならば、B[1]=B[1]+1。//苦肉の策   C[0]=A[0]-B[0]。C[1]=A[1]-B[1]。C=C[1]/C[0]。//A~Bの傾き   D=(A[1]-(A[0]×C))。//A~Bの切片   E=(-1)/(C)。//A~Bの垂直二等分線の傾き   F[0]=(A[0]+B[0])/2。//A~Bの二等分点   F[1]=(A[1]+B[1])/2。//A~Bの二等分点   G=(F[1]-(F[0]×E))。//A~Bの垂直二等分線の切片   H=(補正/(平方根(2)))×2。   もし、E≦0ならば     H=Hを「1,{Eの絶対値}」で内分。     H[0]=H[0]×(-1)。   違えば     H=Hを「1,{E}」で内分。      方向で条件分岐     「上」ならば、I[0]=F[0]+H[0]。I[1]=F[1]+H[1]。//補正点C     「下」ならば、I[0]=F[0]-H[0]。I[1]=F[1]-H[1]。//補正点C      J[0]=(A[0]+I[0])/2。//A~Cの二等分点   J[1]=(A[1]+I[1])/2。//A~Cの二等分点   K[0]=A[0]-I[0]。K[1]=A[1]-I[1]。K=K[1]/K[0]。//A~Cの傾き      L=(-1)/(K)。//A~Cの垂直二等分線の傾き   M=(J[1]-(J[0]×L))。//A~Cの垂直二等分線の切片      N=(M-G)/(E-L)。//A~Bの垂直二等分線、と、A~Cの垂直二等分線、の交点のX座標   O=(E×N)+G。//↑のY座標   P[0]=N。//円の中心の座標X   P[1]=O。//円の中心の座標Y      Q=平方根(((P[0]-A[0])^2)+((P[1]-A[1])^2))。//円の半径   前座標=空。   (361*2)回     R=(回数/2)をラジアン変換。     S[0]=(P[0])+(Q)×COS(R)。     S[1]=(P[1])+(Q)×SIN(R)。          もし、前座標=空ならば、前座標=S。続ける。          方向で条件分岐       「上」ならば         もし、S[1]≧((C×S[0])+D)ならば           OBJの(前座標[0]),(-前座標[1])から(S[0]),(-S[1])へ線。       「下」ならば         もし、S[1]≦((C×S[0])+D)ならば           OBJの(前座標[0]),(-前座標[1])から(S[0]),(-S[1])へ線。              前座標=S。 ●内分(SをVで)   V=Vを「,」で区切る。   A=S/(Vの配列合計)   Vで反復、B[回数-1]=A*対象。   Bで戻る。 ---- #comment() ----
*情報 作者名:五十六 引用元:[[なでしこプログラム掲示板「関数「円弧」」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=919&rev=&no=0]] *概要 円弧を描画します。 *解説 引数「補正」は、↓の長さ #image(mudai3.PNG) ***引数 OBJ:描画先 A:座標その1。 B:座標その2。 補正:円の膨らみ具合 方向:「上」か「下」か(右だったら上、左だったら下)。 ***返り値 なし *サンプルプログラム 線太さ=「3」。 「100,200」と「200,100」から「50」の「下」で円弧。 線色=赤色。 「250,250」と「350,350」から「20」の「上」で円弧。 線太さ=「5」。 「400,100」と「400,300」から「5」の「上」で円弧。 *//本体 ●円弧({グループ=?母艦}OBJのAとBから補正の方向で)   A=Aを「,」で区切る。   B=Bを「,」で区切る。   A[1]=A[1]×(-1)。//逆にしとく   B[1]=B[1]×(-1)。//逆にしとく   もし、A[0]=B[0]ならば、B[0]=B[0]+1。//苦肉の策   もし、A[1]=B[1]ならば、B[1]=B[1]+1。//苦肉の策   C[0]=A[0]-B[0]。C[1]=A[1]-B[1]。C=C[1]/C[0]。//A~Bの傾き   D=(A[1]-(A[0]×C))。//A~Bの切片   E=(-1)/(C)。//A~Bの垂直二等分線の傾き   F[0]=(A[0]+B[0])/2。//A~Bの二等分点   F[1]=(A[1]+B[1])/2。//A~Bの二等分点   G=(F[1]-(F[0]×E))。//A~Bの垂直二等分線の切片   H=(補正/(平方根(2)))×2。   もし、E≦0ならば     H=Hを「1,{Eの絶対値}」で内分。     H[0]=H[0]×(-1)。   違えば     H=Hを「1,{E}」で内分。      方向で条件分岐     「上」ならば、I[0]=F[0]+H[0]。I[1]=F[1]+H[1]。//補正点C     「下」ならば、I[0]=F[0]-H[0]。I[1]=F[1]-H[1]。//補正点C      J[0]=(A[0]+I[0])/2。//A~Cの二等分点   J[1]=(A[1]+I[1])/2。//A~Cの二等分点   K[0]=A[0]-I[0]。K[1]=A[1]-I[1]。K=K[1]/K[0]。//A~Cの傾き      L=(-1)/(K)。//A~Cの垂直二等分線の傾き   M=(J[1]-(J[0]×L))。//A~Cの垂直二等分線の切片      N=(M-G)/(E-L)。//A~Bの垂直二等分線、と、A~Cの垂直二等分線、の交点のX座標   O=(E×N)+G。//↑のY座標   P[0]=N。//円の中心の座標X   P[1]=O。//円の中心の座標Y      Q=平方根(((P[0]-A[0])^2)+((P[1]-A[1])^2))。//円の半径   前座標=空。   (361*2)回     R=(回数/2)をラジアン変換。     S[0]=(P[0])+(Q)×COS(R)。     S[1]=(P[1])+(Q)×SIN(R)。          もし、前座標=空ならば、前座標=S。続ける。          方向で条件分岐       「上」ならば         もし、S[1]≧((C×S[0])+D)ならば           OBJの(前座標[0]),(-前座標[1])から(S[0]),(-S[1])へ線。       「下」ならば         もし、S[1]≦((C×S[0])+D)ならば           OBJの(前座標[0]),(-前座標[1])から(S[0]),(-S[1])へ線。              前座標=S。 ●内分(SをVで)   V=Vを「,」で区切る。   A=S/(Vの配列合計)   Vで反復、B[回数-1]=A*対象。   Bで戻る。 ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。