Войти
ФлеймФорумПрограммирование

правильное построение эллипсоида по точкам (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
23:08, 2 авг. 2019

Mira
Вот тебе тот мой код(+сборка), который строит кривые Безье.
auto_bezier
Сможешь подобрать такие 3 точки, чтобы оно дало "плохую" кривую?


#16
23:25, 2 авг. 2019

MrShoor
работает норм поидее.
только алгоритм сам ориентирует кривую по нужной стороне , так как оперирует 2д пространством.

у меня входные данные можно считать 1d , есть подозрение что с 1d корректно вообще не получится)

#17
0:08, 3 авг. 2019

Идеального решения скорее всего нет. Кривая Безье вполне подошла бы, но вопрос в том, откуда брать дополнительные опорные точки (которые управляют кривизной и обеспечивают плавность сопряжения).
Самое тупое решение может состоять в том, чтобы каждый из четырех участков замкнутого контура рассматривать, как дугу отдельного эллипса с центром в начале координат. В математическом смысле это даст непрерывность кривой, поскольку касательные в крайних точках всегда будут совпадать. И никаких петель точно не будет.

#18
0:16, 3 авг. 2019

Можно касательные задать жёстко в зоне вершин. Например, как линию, параллельную отрезку, соединяющем следующую и предыдущую.

#19
0:28, 3 авг. 2019

а можно это функцию как то плавно задать только для длинны от центра ?
по сути эта фигура только для визуализации, и там нет X и Y как таковых.
нужно получить что-то как у шура.

ясно понятно что надо ее параметризовать как то, эрмиты и катмулы в чистом виде будут не то выдавать. они для линии больше задуманы

#20
1:04, 3 авг. 2019

Mira
> а можно это функцию как то плавно задать только для длинны от центра ?
У тебя же там не только длина от центра, но и угол. Если есть угол - то да, можно. Если угла нет - то в общем случае нельзя.

#21
9:34, 3 авг. 2019

MrShoor
> У тебя же там не только длина от центра, но и угол
угол из веса входного получится, если умножить на 2PI

#22
(Правка: 10:43) 10:41, 3 авг. 2019

Mira
катмул считается по 4 точкам, допустим у тебя есть всего три точки A, B, C. То для отрезка AB берем CABC, для отрезка BC - ABCA, и для CA - BCAB. Для 4-х точек по аналогии, если ты делаешь замкнутую фигуру и не хочешь резкого перехода как у тебя на рисунке.

#23
11:06, 3 авг. 2019

Aroch
да нет же, у меня 4 точки как раз.
те что образуют L1,L2,L3,L4
но проблема в том что это не точки по факту а длины до точек.
виртуальные точки конечно можно вычислить используя длину и угол как написал шур, а потом попробовать посчитать центрический катмуллром или безье, а точки снова преобразовать в длины. но мне кажется должен быть способ проще, без кучи преобразований туда и обратно.

#24
(Правка: 11:14) 11:10, 3 авг. 2019

мне кароче тупо нужно интерполировать 4 float  которые задают 4 полюса кривого эллипса (или как правильно назвать эту фигуру, которая у шура строится безе), точнее расстояния до них до центра. при этом интерполировать их с учетом кривизны, то что это круг.
обычный катмулл интерполирует их без учета кгуглости, по этому дает деффекты при определенных ситуациях.

#25
(Правка: 17:21) 11:32, 3 авг. 2019

Mira
если ты хочешь плавное замыкание тебе нужно добавлять еще пару  точек, то есть для случая ABCD тебе надо DABCDA. И преобразовать value из 0..1 в 1/6 + value * 4 / 6.

Как то так:

+ Показать

#26
11:55, 3 авг. 2019

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

#27
12:01, 3 авг. 2019

Mira
я судил по твоему рисунку в первом сообщении. Она гнет исходя из опорных точек. Если ты хочешь гнуть в определенном направлении то можно шаманить над ними, но тогда можно потерять плавность.

#28
12:04, 3 авг. 2019
Дуга эллипса | правильное построение эллипсоида по точкам

Если есть угол и длина, это полярные координаты. Берем уравнение эллипса в полярных координатах, которое даст прямую зависимость длины от угла. На рисунке строится дуга эллипса с полуосями L1 и L2, и углом от 0 до PI/2. Для второй дуги берем полуоси L3 и L2 и угол от PI/2 до PI. И так далее.
#29
12:10, 3 авг. 2019

Aroch
> я судил по твоему рисунку в первом сообщении.
ну вот, функция сплайна на графике не прерывна и красива.
а если это сделать радиусами - там не оч случается)
Изображение

Страницы: 1 2 3 4 Следующая »
ФлеймФорумПрограммирование