Transform mit winkel
Verfasst: 22.02.2006 20:43
Hier der Code:
Code: Alles auswählen
Procedure TransformSpriteAngle(picid3d,angle.f,x1.f,y1.f,x2.f,y2.f,x3.f,y3.f,x4.f,y4.f)
If angle <> 0
middlex.f = (x1+x2+x3+x4)/4
middley.f = (y1+y2+y3+y4)/4
difx.f = middlex-x1
dify.f = middley-y1
len.f = Sqr(Pow(difx,2)+Pow(dify,2))
angleplus.f = Vec_angle(difx,dify)
x1.f = middlex-Cos(ConvertAngle(angleplus+angle))*len
y1.f = middley-Sin(ConvertAngle(angleplus+angle))*len
difx.f = middlex-x2
dify.f = middley-y2
len.f = Sqr(Pow(difx,2)+Pow(dify,2))
angleplus.f = Vec_angle(difx.f,dify.f)
x2.f = middlex-Cos(ConvertAngle(angleplus+angle))*len
y2.f = middley-Sin(ConvertAngle(angleplus+angle))*len
difx = middlex-x3
dify = middley-y3
len.f = Sqr(Pow(difx,2)+Pow(dify,2))
angleplus.f = Vec_angle(difx.f,dify.f)
x3.f = middlex-Cos(ConvertAngle(angleplus+angle))*len
y3.f = middley-Sin(ConvertAngle(angleplus+angle))*len
difx = middlex-x4
dify = middley-y4
len.f = Sqr(Pow(difx,2)+Pow(dify,2))
angleplus.f = Vec_angle(difx.f,dify.f)
x4.f = middlex-Cos(ConvertAngle(angleplus+angle))*len
y4.f = middley-Sin(ConvertAngle(angleplus+angle))*len
EndIf
TransformSprite3D(picid3d,x1,y1,x2,y2,x3,y3,x4,y4)
EndProcedure