It seems again came the time to ask something. My question is about the TransformationMatrix option, applied to the new Shape meter. Last days I worked with a such meter and wanted to rotate it, using a TransformationMatrix option. On the Transformation Matrix Guide description of the Tips & Tricks section of help, we have a very good description of how to rotate the meters. I applied the described method many time on many kind of meters (especially String and Image). But now, when I tried to use the same method on a Shape meter, it behaved totally different then the String or Image meters.
Let me show you a simple code:
Code: Select all
[Rainmeter]
Update=-1
BackgroundMode=2
SolidColor=80,80,80,160
SkinWidth=300
SkinHeight=300
LeftMouseUpAction=[!CommandMeasure "MeasureFalling" "Execute 1"]
[Variables]
Angle=0
XPos=50
YPos=20
Upd=[!UpdateMeasure "MeasureFalling"][!UpdateMeterGroup "Elements"][!UpdateMeter "MeterAngle"][!Redraw]
[MeasureFalling]
Measure=Plugin
Plugin=ActionTimer
ActionList1=Repeat Work,75,10
Work=[!SetVariable Angle "(Clamp((#Angle#+9),0,90))"]#Upd#
DynamicVariables=1
[MeterRotate1]
Meter=Image
SolidColor=255,240,0
X=#XPos#
Y=#YPos#
W=5
H=200
DynamicVariables=1
TransformationMatrix=(Cos(Rad(-#Angle#)));(-Sin(Rad(-#Angle#)));(Sin(Rad(-#Angle#)));(Cos(Rad(-#Angle#)));(([MeterRotate1:X]+[MeterRotate1:W]/2)-(([MeterRotate1:X]+[MeterRotate1:W]/2)*Cos(Rad(-#Angle#)))-(([MeterRotate1:Y]+[MeterRotate1:H])*Sin(Rad(-#Angle#))));(([MeterRotate1:Y]+[MeterRotate1:H])+(([MeterRotate1:X]+[MeterRotate1:W]/2)*Sin(Rad(-#Angle#)))-(([MeterRotate1:Y]+[MeterRotate1:H])*Cos(Rad(-#Angle#))))
Group=Elements
[MeterRotate2]
Meter=Shape
Shape=Rectangle 0,0,5,200 | Fill Color 255,0,0 | StrokeWidth 0 | Stroke Color 0,0,0,0
X=0r
Y=0r
DynamicVariables=1
TransformationMatrix=(Cos(Rad(-#Angle#)));(-Sin(Rad(-#Angle#)));(Sin(Rad(-#Angle#)));(Cos(Rad(-#Angle#)));(([MeterRotate2:X]+[MeterRotate2:W]/2)-(([MeterRotate2:X]+[MeterRotate2:W]/2)*Cos(Rad(-#Angle#)))-(([MeterRotate2:Y]+[MeterRotate2:H])*Sin(Rad(-#Angle#))));(([MeterRotate2:Y]+[MeterRotate2:H])+(([MeterRotate2:X]+[MeterRotate2:W]/2)*Sin(Rad(-#Angle#)))-(([MeterRotate2:Y]+[MeterRotate2:H])*Cos(Rad(-#Angle#))))
Group=Elements
[MeterAngle]
Meter=STRING
X=5
Y=5
Padding=15,5,15,5
FontColor=220,220,220
SolidColor=0,0,0,150
FontSize=8
FontFace=Segoe UI
StringStyle=BOLD
StringAlign=LEFT
AntiAlias=1
Text=#Angle#
DynamicVariables=1
The first is an Image meter, the second one is a Shape meter. They are differently colored, to can distinguish them. When you click to the background of the skin, both meters are rotated with 90 degrees clockwise. But after the rotation the will get different positions. Like they wouldn't be rotated around the same point:
The TransformationMatrix options are similar, so the rotation should be also similar. Why is happening this and how could be made the Shape meter to rotate same way as the Image meter does? Am I missing something obvious?
Although I posted this question here to the Bugs & Feature Suggestions thread, I'm not sure this is a bug. But I couldn't figure out what to do to make the meter to rotate "normally", like an Image meter does, for example, although I can say I have some experience working with the TransformationMatrix option.
Thanks in advance to anyone could help.