Re: вопрос по триангуляции
От: Lone Беларусь  
Дата: 23.11.04 20:08
Оценка: 3 (1)
Здравствуйте, piAnd, Вы писали:

[]

Сталкивался с подобной проблемой. К сожалению, дело было не то чтобы давно, но и не настолько недавно, чтобы я помнил, в чем именно здесь загвоздка. Помню лишь, что пришлось заново выводить формулы. Разбираться снова в этом желания как-то нет (и так намучался я с этой триангуляцией, до сих пор покоя не дает ), поэтому просто приведу фрагмент кода (вроде как работает):
    // Выполняем промежуточные вычисления.
    const double dx1 = x1 - x0;
    const double dx2 = x3 - x0;
    const double dx3 = x1 - x2;
    const double dx4 = x3 - x2;
    const double dy1 = y1 - y0;
    const double dy2 = y3 - y0;
    const double dy3 = y1 - y2;
    const double dy4 = y3 - y2;
    const double sa = dx1 * dx2 + dy1 * dy2;
    const double sb = dx3 * dx4 + dy3 * dy4;

    // Проверяем условие Делоне.
    if (sa >= 0.0 && sb >= 0.0)
        return TRUE;
    if (sa < 0.0 && sb < 0.0)
        return FALSE;
    return (((dx2 * dy1 - dx1 * dy2) * sb + sa * (dx3 * dy4 - dx4 * dy3)) >= 0.0);


PS Недавно вот поставили задачу перейти от построения триангуляции Делоне к построению триангуляции Делоне с ограничениями (чтобы ребра триангуляции не пересекали отрезки горизонталей и границ водных поверхностей), так что головная боль снова ко мне вернулась
"Жизнь проходит не так, как представлялось в детстве" © Остап Бендер
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.