Всем доброго вечера! Рано я вчера радовался... Только подумал, что справился с задачей, как выяснилось, что где то, что то не так. Как всегда начну по порядку. Вот та самая ( для меня пугающая ) формула Безье третьего порядка: $$B(t)=(1-t)^2P_0+3t(1-t)^2P1+3t^2(1-t)P_2+t^3P_3, t\epsilon [0,1]$$ Зная координаты всех Р ( начало, конец и две опорные точки ) можно построить кривую. Но моя задача, зная три точки ( начало конец и максимум дуги ) найти опорные точки. Рассуждения такое - если точка D имеет коэффициент 0.5 $$t=0.5$$ $$D(t)=(1-t)^2P_0+3t(1-t)^2P1+3t^2(1-t)P_2+t^3P_3, t\epsilon [0,1]$$ И как мне дальше подсказали, нужно сокращать: $$D = 0.5^3\cdot P_0 + 0.5^3 * 3* P_1 + 0.5^3\cdot 3 \cdot P_2 + 0.5^3\cdot P_3$$ $$D = 0.125\cdot ( P_0 + P_3 + 3\cdot (P_1 + P_2) )$$ $$P_0 + P_3 + 3\cdot (P_1 + P_2) = D/0.125$$ И тут уже переходим в поиски самих координат: $$P_4(P_0x+P_3x,P_0y+P_3y)$$ $$H(D_x/0.125, D_y/0.125);$$ $$K(H_x-P_4x,H_Y-P_4y)$$ $$M(K_x/3,K_y/3)$$ И как должно быть, что вектор М является суммарным вектором $$CP_1 , CP_2$$ Это так? Я не вижу ошибку ( но это не удивительно ), но и не могу найти подтверждения.
задан 19 Сен '13 22:01 shatal |
Вы уже получили из уравнения кривой выражение для точки $%D$%: $$D=\frac{1}{8}(P_0+3\cdot P_1+3\cdot P_2+P_3)$$ Если от левой и правой части отнять точку $%C$%, то получим уравнение для векторов $$\vec{CD}=\frac{1}{8}(\vec{CP_0}+3\cdot \vec{CP_1}+3\cdot \vec{CP_2}+\vec{CP_3})\qquad(*)$$ Для этих векторов имеем, что $%\vec{CP_0}\parallel\vec{CP_1},\;\;\vec{CP_2}\parallel\vec{CP_3}$%... Судя по Вашей картинке, точки расположены симметрично, посему из признака параллельности векторов получаем, что $$\vec{CP_1}=\alpha\cdot\vec{CP_0},\;\;\vec{CP_2}=\alpha\cdot\vec{CP_3},$$ где $%\alpha\in(0;1)$% - число подлежащее определению... Дальше подставляете в равенство $%(*)$% и получаете уравнение для нахождения параметра $%\alpha$%... например из сравнения координат... отвечен 19 Сен '13 23:30 all_exist |
@shatal, Хотелось бы уточнить условие... Вам даны точки $%P_0,\; P_3,\; D$%...
А точка $%C$% известна?... если да, то найти $%P_{1,2}$% несложно... если нет, то у меня подозрение, что данных маловато...
$% C $% конечно же известна! Но очень бы желательно, чтобы это решение было связанно с формулой Безье, так как мне потом этот же угол придётся ещё раз пополам разбить. Спасибо Вам за помощь! Как Вы формулы в строке так делаете? И мне тут известно всё тоже, что Вы мне помогли в прошлом найти.
Как Вы формулы в строке так делаете? слева и справа формулу ограничивают парой знаков - $ %