2016-08-28 9 views
1

Я ищу, чтобы установить альфа определенного объекта, чтобы исчезнуть по отношению к его расстоянию.Инверсия альфа и расстояния?

Эти значения изменяются с течением времени.

Диапазон для расстояния от 0 до 51. Диапазон для альфа составляет от 0 до 255.

я начала с помощью функции карты:

alpha = map(d,0,51,0,255); 

Теперь, если значение d, например, «16», значение альфа составляет «80».

В крайних случаях это будет, если расстояние в '0', альфа - '0', а расстояние - 51, альфа - '255'.

То, что я хочу достичь, состоит в том, чтобы инвертировать отношения, если значение расстояния 51 приведет к получению альфа-версии '0'.

Я попытался использовать стандартную формулу y = k/x, но что-то возилось с моей головой, и я не могу заставить ее работать вместе с отображением.

ответ

1

Не можете ли вы просто вычесть его из 255?

alpha = 255 - map(d,0,51,255,0); 

Теперь, если исходное значение было 255, новое значение 0. Если исходное значение было 0, новое значение равно 255.

Вы также можете учесть расстояние от 51.

Если это не делает именно то, что вы хотите, я предлагаю составить диаграмму старых значений и новые значения, которые вы хотите. Вы заметили шаблон, который вы можете применить в коде?

+0

Извините, я забыл упоминание о том, что значения меняются со временем, поскольку объекты взаимодействуют друг с другом. – user4985

+0

@ user4985 Да, все в порядке. Значение изменится в любое время, когда будет изменено значение 'd'. Это просто инвертирует число, которое вы получаете каждый шаг. –