Изменение величины (от-до) исходя из другой величины (от-до)
Помогите в вопросе, может кто сталкивался.
Не могу сам додуматься как написать в математической формуле решение. Есть величины длины и высоты от которых будет меняться третье число (оно допустим от 0 до 8), именно, что от 0 до 8 иначе перебор или недобор.
То есть, есть величины:
from random import*
width #длина - величина изменяемая пользователем (от 0 до 640)
height #высота - величина изменяемая пользователем (от 0 до 360)
width_max = 640 #длина - величина постоянная
height_max = 360 #высота- величина постоянная
size # размер от 0 до 8ми (который мы будем получать имея входные данные "длины" и "высоты")
И необходимо изменять Size исходя из значения width и height, чем больше тем больше другое...
Если кто-то поможет в написании формулы или подскажет может уже есть готовая функция (изменения значения от-до исходя из значений от-до) Заранее спасибо.
Ответы (2 шт):
Если я вас правильно понял, то как-то так:
max_width = 640
max_height = 360
max_size = 8
size = (max_size + 1) * width * height // (max_width * max_height + 1)
Можно рассмотреть такой вариант. Width от 0 до 4, height от 0 до 4.
max_width =640
max_height =360
bit_width=max_width//4
bit_height=max_height//4
d_width= width /bit_width
d_height= height /bit height
size = d_width + d height
size_int = round (size, 0)
Вообще чтобы перевести отрезок [0,a] в [0,b] нужно все элементы [0,a] умножить на b/a.
Для пилообразной функции с максимумом в 300 и нулем в 150 и 450 получаем
d_width = 4-4*abs(witdh-300)/150