It is currently April 19th, 2024, 2:41 pm

Rotate Skin in 3-Dimension Template

Skins with graphics and animations
User avatar
XANCI
Posts: 104
Joined: September 18th, 2011, 6:37 am
Location: Nanjing, China

Rotate Skin in 3-Dimension Template

Post by XANCI »

Apply TransformationMatrix with a little math...
1.jpg

Code: Select all

[Rainmeter]
Update=10

[Variables]
Phi=0
Psi=0
RotateX=200
PitchY=200
SlopeX=200
SlopeY=200

[mc]
Measure=CPU
UpdateDivider=100

[mt]
Measure=Calc
Formula=([mt]+pi)%360
DynamicVariables=1

[a]
Measure=Calc
Formula=cos([mt]/180*pi)
DynamicVariables=1

[b]
Measure=Calc
Formula=sin([mt]/180*pi)*sin(#Phi#/180*pi)
DynamicVariables=1

[c]
Measure=Calc
Formula=0

[d]
Measure=Calc
Formula=cos(#Phi#/180*pi)
DynamicVariables=1

[e]
Measure=Calc
Formula=#RotateX#*(1-cos([mt]/180*pi))
DynamicVariables=1

[f]
Measure=Calc
Formula=#PitchY#-#RotateX#*sin([mt]/180*pi)*sin(#Phi#/180*pi)-#PitchY#*cos(#Phi#/180*pi)
DynamicVariables=1

[a1]
Measure=Calc
Formula=cos(#Psi#/180*pi)
DynamicVariables=1

[b1]
Measure=Calc
Formula=sin(#Psi#/180*pi)
DynamicVariables=1

[c1]
Measure=Calc
Formula=-sin(#Psi#/180*pi)
DynamicVariables=1

[d1]
Measure=Calc
Formula=cos(#Psi#/180*pi)
DynamicVariables=1

[e1]
Measure=Calc
Formula=#SlopeX#*(1-(cos(#Psi#/180*pi)))+#SlopeY#*(sin(#Psi#/180*pi))
DynamicVariables=1

[f1]
Measure=Calc
Formula=#SlopeY#*(1-(cos(#Psi#/180*pi)))-#SlopeX#*(sin(#Psi#/180*pi))
DynamicVariables=1

[a2]
Measure=Calc
Formula=([a1])*([a])+([c1])*([b])
DynamicVariables=1

[b2]
Measure=Calc
Formula=([b1])*([a])+([d1])*([b])
DynamicVariables=1

[c2]
Measure=Calc
Formula=([a1])*([c])+([c1])*([d])
DynamicVariables=1

[d2]
Measure=Calc
Formula=([b1])*([c])+([d1])*([d])
DynamicVariables=1

[e2]
Measure=Calc
Formula=([a1])*([e])+([c1])*([f])+([e1])
DynamicVariables=1

[f2]
Measure=Calc
Formula=([b1])*([e])+([d1])*([f])+([f1])
DynamicVariables=1

[bg]
Meter=IMAGE
W=400
H=400
SolidColor=000000

[mb21]
Meter=IMAGE
X=(#RotateX#-100)
Y=(#PitchY#+200*cos(#Phi#/180*pi)/2-200*sin(#Phi#/180*pi)/2)
W=200
H=(200*sin(#Phi#/180*pi))
SolidColor=e05050a0
AntiAlias=1
DynamicVariables=1
TransformationMatrix=[a1];[b1];[c1];[d1];[e1];[f1]

[mb1]
Meter=IMAGE
X=(#RotateX#-100)
Y=(#PitchY#-(200*cos(#Phi#/180*pi))/2)
W=200
H=(200*cos(#Phi#/180*pi))
SolidColor=50e050a0
AntiAlias=1
DynamicVariables=1
TransformationMatrix=[a1];[b1];[c1];[d1];[e1];[f1]

[m1]
Meter=IMAGE
X=(#RotateX#-100)
Y=(#PitchY#-100)
W=200
H=200
SolidColor=ffffffa0
DynamicVariables=1
AntiAlias=1
TransformationMatrix=[a2];[b2];[c2];[d2];[e2];[f2]

[m2]
Meter=STRING
X=20r
Y=20r
FontFace=Arial
FontColor=2040e0a0
FontSize=20
StringStyle=BOLD
Text="CPU"
DynamicVariables=1
AntiAlias=1
TransformationMatrix=[a2];[b2];[c2];[d2];[e2];[f2]

[m3]
Meter=STRING
MeasureName=mc
X=160r
Y=r
FontFace=Arial
FontColor=2040e0a0
FontSize=20
StringStyle=BOLD
StringAlign=RIGHT
DynamicVariables=1
AntiAlias=1
TransformationMatrix=[a2];[b2];[c2];[d2];[e2];[f2]

[m4]
Meter=Bar
MeasureName=mc
X=(#RotateX#-80)
Y=40r
W=160
H=20
BarOrientation=HORIZONTAL
BarColor=5050e0a0
SolidColor=5050e020
DynamicVariables=1
TransformationMatrix=[a2];[b2];[c2];[d2];[e2];[f2]

[mb22]
Meter=IMAGE
X=(#RotateX#-100)
Y=(#PitchY#+200*cos(#Phi#/180*pi)/2-200*(-sin(#Phi#/180*pi))/2)
W=200
H=(200*(-sin(#Phi#/180*pi)))
SolidColor=e05050a0
AntiAlias=1
DynamicVariables=1
TransformationMatrix=[a1];[b1];[c1];[d1];[e1];[f1]

[t1]
Meter=STRING
X=40
FontColor=ffffff
SolidColor=ffffff20
Text="Theta [mt]"
DynamicVariables=1

[phi1]
Meter=STRING
X=40
Y=R
FontColor=ffffff
SolidColor=ffffff20
Text="Phi #Phi#"
DynamicVariables=1

[phi2]
Meter=STRING
X=120r
y=r
FontColor=ffffff
SolidColor=ffffff20
Text="-"
LeftMouseUpAction=!Execute [!SetVariable Phi "((#Phi#-10)%90)"][!Update]
DynamicVariables=1

[phi3]
Meter=STRING
X=4R
y=r
FontColor=ffffff
SolidColor=ffffff20
Text="+"
LeftMouseUpAction=!Execute [!SetVariable Phi "((#Phi#+10)%90)"][!Update]
DynamicVariables=1

[psi1]
Meter=STRING
X=40
Y=R
FontColor=ffffff
SolidColor=ffffff20
Text="Psi #Psi#"
DynamicVariables=1

[psi2]
Meter=STRING
X=120r
y=r
FontColor=ffffff
SolidColor=ffffff20
Text="-"
LeftMouseUpAction=!Execute [!SetVariable Psi "((#Psi#-20)%360)"][!Update]
DynamicVariables=1

[psi3]
Meter=STRING
X=4R
y=r
FontColor=ffffff
SolidColor=ffffff20
Text="+"
LeftMouseUpAction=!Execute [!SetVariable Psi "((#Psi#+20)%360)"][!Update]
DynamicVariables=1
You do not have the required permissions to view the files attached to this post.
User avatar
XANCI
Posts: 104
Joined: September 18th, 2011, 6:37 am
Location: Nanjing, China

Re: Rotate Skin in 3-Dimension Template

Post by XANCI »

may be useful to some HUD-like skins :)
User avatar
MerlinTheRed
Rainmeter Sage
Posts: 889
Joined: September 6th, 2011, 6:34 am

Re: Rotate Skin in 3-Dimension Template

Post by MerlinTheRed »

Sadly, only rotations in a parallel projection setting are possible since TransformationMatrix doesn't support perspective (yet). Let's hope it gets implemented in the future...
Have more fun creating skins with Sublime Text 2 and the Rainmeter Package!