В разделе 3.8 «Применение параметрического задания кривой» описываются различные способы задания кривых и излагается чрезвычайно полезная параметрическая форма, которая Позволяет легко рисовать сложные кривые. Рассматриваются плоские и трехмерные кривые.
3.1. Введение Хорошо сказать о предмете столь же интересно и столь же трудно, как нарисовать его.
Винсент Ван Тог В главе 2 наши рисунки выполнялись в основной системе координат экранного окна. Эти координаты измеряются преимущественно в пикселах и изменяются от нуля до некоторой величины screenWidth-1 по х и от нуля до величины screenHeight-1 по у. Это означает, что мы можем использовать только положительные величины х и у и эти величины должны иметь значительный диапазон (до нескольких сотен пикселов), если мы рассчитываем получить рисунок приемлемого размера.
Однако при решении какой-нибудь задачи мы можем не захотеть мыслить в терминах пикселов. Было бы гораздо естественнее, если бы х изменялся, скажем, от -1 до 1, а у - от -100,0 до 20,0. (Напомним, как непросто было масштабировать и сдвигать данные в программе создания точечного графика в листинге 2.7.) Ясно, что мы должны различать величины, используемые нами в программе для описания геометрических объектов, и размер и расположение изображений этих объектов на экране дисплея.
В данной главе мы рассматриваем методы, позволяющие программисту или пользователю описывать свои объекты в той системе координат, которые наилучшим образом способствуют решению каждой отдельной задачи, а затем автоматически масштабировать и сдвигать изображение объекта так, чтобы оно «вписывалось» в экранное окно. Пространство, в котором описываются объекты, называется мировыми координатами (world coordinates) - это обычные декартовы координаты (дг, у), используемые в математике, причем в любых удобных единицах.
В мировых координатах мы определяем прямоугольное мировое окно1 (world window). Мировое окно устанавливает, какую часть «внешнего мира» следует нарисовать. Смысл мирового окна в следующем: все, что находится внутри этого окна, должно быть нарисовано, а все, что находится вне его, должно быть отсечено и не должно рисоваться.