daveycroqet - 2 months ago 11

Javascript Question

I asked a similar question earlier today, and it turns out that I just suck at math, because I can't figure this one out, either.

I'm calculating the screen ratio via width/height. I need a function to convert that resulting number to a new scale.

e.g.

`function convertNum(ratio) {`

return //formula here

}

Examples:

`Given a resolution of 3000x1000 = ratio of 3 (i.e. 3000/1000).`

I want it converted to 133.3 via the function, e.g. convertNum(3) spits out 133.33

2500x1000 = 2.5 (desired result: 100)

2000x1000 = 2 (desired result: 66.6)

1500x1000 = 1.5 (desired result: 33.3)

1000x1000 = 1 (desired result: 0)

It should keep scaling this way for all screen ratios above 1.0.

Answer Source

You need to add an additional 33.3% for every 0.5 in the ratio.

First figure out how many "padding pieces" you need to add:

```
# Subtracting 1 since 1 should result in a 0
(ratio - 1) / 0.5
```

Then multiply the number of padding pieces by the padding amount:

```
((ratio - 1) / 0.5) * 0.333
```

This might be able to be simplified further, but my brains fried from working a night shift.