#processing
#обработка
Вопрос:
final float MAX_SIZE = 35000;
final float MIN_SIZE = MAX_SIZE/10;
float alienSize;
float alienY;
float alienX;
void draw()
{
alienX = mouseX;
alienY = mouseY;
alienSize = MAX_SIZE*mouseY/height;
}
Моя цель — сделать переменную alienSize максимальным размером, когда она (и мышь) находится в нижней части окна, и 1/10 размера, когда она ( и мышь) находится в верхней части окна. До сих пор у меня есть этот код, который работает для максимального размера, но нет предела тому, насколько маленьким может быть инопланетянин. любая помощь, пожалуйста 🙂
Редактировать: я должен передать это, чтобы не было обмана, пожалуйста, как проверка оператора if на размер или что-то еще
Комментарии:
1. Почему наличие
if
инструкции может быть обманом?
Ответ №1:
Вы могли бы использовать эту map()
функцию. map()
Функция принимает 5 значений:
- Входное значение.
- Минимальное входное значение.
- Максимальное входное значение.
- Минимальное выходное значение.
- Максимальное выходное значение.
Затем он возвращает выходное значение, основанное на относительном положении входного значения, масштабируемое до выходных значений min и max. Например, если вы вызовете map(150, 100, 200, 500, 700)
, вы получите обратно значение 600
because 150
находится на полпути между 100
и 200
, поэтому оно определяет, какое значение находится на полпути между 500
и 700
.
Вот пример:
float minSize = 50;
float maxSize = 100;
void setup(){
size(500, 100);
}
void draw(){
float size = map(mouseX, 0, width, minSize, maxSize);
background(0);
ellipse(mouseX, height/2, size, size);
}
Более подробную информацию можно найти в справочнике.