Concerning Bangle.appRect: well, I know that feature but I refuse to sacrifice 24 (or even 48) pixel >lines of the extremely precious screen, as soon as even the smallest widget has appeared. For that >reason, I used a little geometry to see if a circular clock face could fit into the empty space between >widgets in the screen corners - or reduced the clock face radius as little as possible!
Sure but in practice its not making very much difference.
In the example below I am using the Lock, Pedometer, and Battery Widget (themed).
The line for the 12 digits were coming out as 23.9. My calculation just goes for 24.
I printed out the values of CentreX, CentreY, outerRadius in both versions and the difference is less than 1 pixel. The presence of one widget on the top line results in the top of the 12 being written at Y = 23.9.
The advantage of your code is that it will adjust as a person's config changes as they go from no widgets, some top widgets, some bottom widgets etc. So no matter what the config is, your approach will always attempt to maximise the size of the clock face.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Sure but in practice its not making very much difference.
In the example below I am using the Lock, Pedometer, and Battery Widget (themed).
The line for the 12 digits were coming out as 23.9. My calculation just goes for 24.
I printed out the values of CentreX, CentreY, outerRadius in both versions and the difference is less than 1 pixel. The presence of one widget on the top line results in the top of the 12 being written at Y = 23.9.
The advantage of your code is that it will adjust as a person's config changes as they go from no widgets, some top widgets, some bottom widgets etc. So no matter what the config is, your approach will always attempt to maximise the size of the clock face.
My working example is at:
https://github.com/hughbarney/bangle_bits/blob/master/anaclock/simplest.basic.app.js