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

There are two meters with the same size and in the same position: [MeterRotate1] and [MeterRotate2]:

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.