Изгиб от одной точки к другой - PullRequest
1 голос
/ 06 декабря 2009

У меня есть плитки, которые находятся в случайных местах, и они заканчиваются на x ', y' (чтобы создать хороший 2d массив), выполнив:

X t = (((X & prime; -X) / T) * t) + X,
Y t = (((Y & prime; -Y) / T) * t) + Y

Это хорошо работает, но оно линейно. Я ищу что-то более пышное. Немного похоже на работу параболы. По сути, вместо того, чтобы добраться до X 'по прямой линии, я ищу алгоритм, который будет искривляться и заканчиваться на X', а величина кривизны зависит от переменной.

Спасибо

* EDIT Я думаю, что кривая Безье выглядит как то, что я хочу, но я не уверен, как это реализовать. Может кто-нибудь объяснить, пожалуйста, формулу квадратичного Безье. Я также не уверен, что делает символ «E». Я думаю, что это относится к диапазону, но я не уверен, спасибо

Ответы [ 3 ]

2 голосов
/ 06 декабря 2009

Вы ищете Кривые Безье или какую-либо другую аналогичную параметрическую кривую. Они программно довольно просты в кодировании и имеют преимущество в том, что они интуитивно просты в управлении. Лучший из известных мне трактатов - это классическая книга Математические элементы компьютерной графики , но любой учебник по компьютерной графике, вероятно, будет содержать базовое введение.

2 голосов
/ 06 декабря 2009

То, что вы ищете, это сплайн Катмул-Ром , это тип сплайна Эрмита, который проходит через контрольные точки. Кривые Безье - не тот путь, которым трудно управлять в этой ситуации.

0 голосов
/ 06 декабря 2009

Посмотрите эту страницу о Perlin Noise , в частности, раздел "Интерполяция". Общая идея заключается в том, что вместо линейной передаточной функции над t в [0, 1] вы можете применить что-то, чтобы получить более плавные кривые. «Самый плавный» шум - это функция cos(t), но для аппроксимации косинуса можно использовать кубические или квинтические полиномы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...