触手の動きのアルゴリズム教えてください (326レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

172: あああ [] 02/06/14 21:12 ID:MQwpPVXA(1/4) AAS
                       手
                       |
                       |
                手      肘x2=90
                /     /
               /     /
 肩----肘----手 > 肩----肘   >  肩
 x1=0 x2=0    x1=0 x2=45    x1=45
これでみたとうり部分部分で、角度の値を持たせるというのが、多関節
(簡易な)といったとこでしょうか。
173
(1): あああ [] 02/06/14 21:16 ID:MQwpPVXA(2/4) AAS
うーむ。絵がずれるねー。いやーん。

(Module.bas で 定義)
Type rect
obj As Integer
ang As Integer
End Type

Sub Kansetu_Click ()

Const SHOULDER = 1 ' 肩
Const ELBOW = 2 ' 肘
Const HAND = 3 ' 手
ReDim x(4) As Single
ReDim y(4) As Single
ReDim an(10) As rect ' データ構造
' データ
an(0).obj = 0: an(0).ang = 0
an(1).obj = ELBOW: an(1).ang = 30
an(2).obj = HAND: an(2).ang = 45
an(3).obj = SHOULDER: an(3).ang = 25
an(4).obj = ELBOW: an(4).ang = 40
an(5).obj = SHOULDER: an(5).ang = 30
an(6).obj = HAND: an(6).ang = 60
an(7).obj = SHOULDER: an(7).ang = 45
an(8).obj = ELBOW: an(8).ang = 60
an(9).obj = -1: an(9).ang = 0
174
(1): あああ [] 02/06/14 21:18 ID:MQwpPVXA(3/4) AAS
p = 3.14156 / 180 ' π
h = ScaleHeight / 2 ' Form の 高さ
w = ScaleWidth / 4 ' Form の 幅
sl = 250 ' 肩の長さ
el = 300 ' 肘の長さ
hl = 200 ' 手の長さ
c = 5: ' 色
j = 0:oan1=0:oan2=0:oan3=0
Do
If an(j).obj = -1 Then Exit Do
Cls
Select Case an(j).obj
Case 1: an1 = an(j).ang + oan1 ' 肩を動かす
an2 = an1 + oan2
an3 = an2 + oan3
oan1 = an1
Case 2: an2 = an1 + an(j).ang + oan2 ' 肘を動かす
an3 = an2 + oan3
oan2 = an(j).ang
Case 3: an3 = an2 + an(j).ang + oan3 ' 手を動かす
oan3 = an(j).ang
End Select
175
(1): あああ [] 02/06/14 21:18 ID:MQwpPVXA(4/4) AAS
x(0) = 0: y(0) = 0
x(1) = Cos(an1 * p) * sl: y(1) = Sin(an1 * p) * sl
x(2) = Cos(an2 * p) * el: y(2) = Sin(an2 * p) * el
x(3) = Cos(an3 * p) * hl: y(3) = Sin(an3 * p) * hl
' 線を描画
Line (x(0) + w, y(0) + h)-(x(1) + w, y(1) + h), QBColor(c)
Line -(x(2) + w + x(1), y(2) + h + y(1)), QBColor(c + 1)
Line -(x(3) + w + x(2) + x(1), y(3) + h + y(2) + y(1)), QBColor(c + 3)
j = j + 1
MsgBox "Push Next"
Loop

End Sub
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s