You're doing everything correctly, per your pseudo-code, and your approach - as far as I can tell - should center things without any problem, like below:
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
BackgroundMode=2
SolidColor=47,47,47,255
LeftMouseUpAction=[!ToggleMeter Help_OriginalSize][!Redraw]
---Meters---
[Help_OriginalSize]
Meter=Shape
; X=100
; Y=50
; W=230
; H=100
Shape=Path HPath | Extend SharedModifiers | Offset (60*0),0
HPath=0,0 | LineTo 0,100 | LineTo 10,100 | LineTo 10,55 | LineTo 40,55 | LineTo 40,100 | LineTo 50,100 | LineTo 50,0 | LineTo 40,0 | LineTo 40,45 | LineTo 10,45 | LineTo 10,0 | ClosePath 1
Shape2=Path EPath | Extend SharedModifiers | Offset (60*1),0
EPath=0,0 | LineTo 0,100 | LineTo 50,100 | LineTo 50,90 | LineTo 10,90 | LineTo 10,55 | LineTo 50,55 | LineTo 50,45 | LineTo 10,45 | LineTo 10,10 | LineTo 50,10 | LineTo 50,0 | ClosePath 1
Shape3=Path LPath | Extend SharedModifiers | Offset (60*2),0
LPath=0,0 | LineTo 0,100 | LineTo 50,100 | LineTo 50,90 | LineTo 10,90 | LineTo 10,0 | ClosePath 1
Shape4=Path PPath | Extend SharedModifiers | Offset (60*3),0
PPath=0,0 | LineTo 0,100 | LineTo 10,100 | LineTo 10,10 | LineTo 23,10 | ArcTo 23,45,*,*,*,*,* | LineTo 10,45 | LineTo 10,55 | LineTo 23,55 | ArcTo 23,0,*,*,*,1,* | ClosePath 1
SharedModifiers=StrokeWidth 1 | Stroke Color 255,0,0,128 | Fill Color 255,255,255,128
Shape5=Combine Shape | Union Shape2 | Union Shape3 | Union Shape4
DynamicVariables=1
[Help_Scaled]
Meter=Shape
; X=100
; Y=50
; W=230
; H=100
Shape=Path HPath | Extend SharedModifiers | Offset (60*0),0
HPath=0,0 | LineTo 0,100 | LineTo 10,100 | LineTo 10,55 | LineTo 40,55 | LineTo 40,100 | LineTo 50,100 | LineTo 50,0 | LineTo 40,0 | LineTo 40,45 | LineTo 10,45 | LineTo 10,0 | ClosePath 1
Shape2=Path EPath | Extend SharedModifiers | Offset (60*1),0
EPath=0,0 | LineTo 0,100 | LineTo 50,100 | LineTo 50,90 | LineTo 10,90 | LineTo 10,55 | LineTo 50,55 | LineTo 50,45 | LineTo 10,45 | LineTo 10,10 | LineTo 50,10 | LineTo 50,0 | ClosePath 1
Shape3=Path LPath | Extend SharedModifiers | Offset (60*2),0
LPath=0,0 | LineTo 0,100 | LineTo 50,100 | LineTo 50,90 | LineTo 10,90 | LineTo 10,0 | ClosePath 1
Shape4=Path PPath | Extend SharedModifiers | Offset (60*3),0
PPath=0,0 | LineTo 0,100 | LineTo 10,100 | LineTo 10,10 | LineTo 23,10 | ArcTo 23,45,*,*,*,*,* | LineTo 10,45 | LineTo 10,55 | LineTo 23,55 | ArcTo 23,0,*,*,*,1,* | ClosePath 1
SharedModifiers=StrokeWidth 1 | Stroke Color 255,0,0,255 | Fill Color 255,255,255,255
Shape5=Combine Shape | Union Shape2 | Union Shape3 | Union Shape4 | Scale 0.2,0.2
DynamicVariables=1
meter, and see for yourself. Uncommenting the X, Y, W or H coordinates doesn't produce any unwanted movement, setting the W and H actually makes things a bit better.
I'm not sure what was the problem, but that was not a wise decision. You don't overcome challenges by giving up or let your anger take over your brain. You have to stick to it till you get to the bottom of it, and sometimes pauses (so that your mind is fresh and has new and better ideas) are a good trick to finally overcome the challenge. Persistence (or insistence, if you like) is key. Sure, too much of that is detrimental as well, since it will take time from other issues, but that's another story. As always, striking the right balance between persistence and knowing when to let it go and mind something else is the best option.
P.S. And yes, the starting and ending points of the inner and outer arcs in the P letter are specifically set so that those arcs are perfect half-circles (thus the * default values used for the rest of the arc parameters). Original letters are 50 x 100 px each, the "weight" of the letter is 10 px and the path direction is LeftTop to LeftBottom to RightBottom to RightTop for each letter, if anyone is interested.