Уроки · 12
Доля от 0 до 1
В уроке “Проценты” мы каждый раз делили процент на 100:
x_percent / 100.0. Но процент и так означает “часть от 100” — 60% и
есть 60 из 100, то есть 0.6. Это одно и то же число, просто записанное
по-другому.
Было и стало
Заголовок раздела «Было и стало»// Было — процент от 0 до 100, с делением на 100:let x_percent = 60.0;let x = screen_width() * x_percent / 100.0;// Так же, но сразу в виде доли от 0 до 1 — без деления:let x_fraction = 0.6;let x = screen_width() * x_fraction;Результат в обоих случаях один и тот же. Просто во втором случае число
уже готово к использованию, и не нужно каждый раз писать / 100.0.
Именно так — числом от 0 до 1 — в коде обычно и записывают доли, а
проценты (от 0 до 100) чаще встречаются только в тексте, для людей.
Попробуй сам
Заголовок раздела «Попробуй сам»Меняй значения x и y ниже — от 0 до 1 —
и смотри, как кружок занимает то же самое место, что и в прошлом
уроке с процентами, только без промежуточного деления в коде:
use macroquad::prelude::*;
#[macroquad::main("Доля от 0 до 1")]async fn main() { loop { clear_background(BLACK);
// Доля от ширины экрана. let x = screen_width() * 0.5; // Доля от высоты экрана. let y = screen_height() * 0.5;
draw_circle(x, y, 80.0, YELLOW);
next_frame().await; }}Что здесь происходит
Заголовок раздела «Что здесь происходит»xиyтут — уже готовая доля от 0 до 1, а не процент.0.5соответствует 50%,0.25— 25%, и так далее.screen_width() * xсразу даёт координату в пикселях — умножение без лишнего деления на 100.- Доля особенно удобна, когда нужно задать позицию внутри чего-то, чей размер заранее неизвестен или может поменяться, — например, круга или окна. Подробнее об этом — в дополнительном уроке «Относительные координаты».