Главная страница
Навигация по странице:

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑68

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑69

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑70

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑71

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑72

  • Рис. Затенение отрезка плоскостью при перспективной проекции ‑73

  • Алгоритмы компьютерной графики Пешков Анатолий Тимофеевич, БГУИР. 1 отображение просранства пользователя и машинного носителя 4


    Скачать 1.86 Mb.
    Название1 отображение просранства пользователя и машинного носителя 4
    Дата24.09.2022
    Размер1.86 Mb.
    Формат файлаdoc
    Имя файлаАлгоритмы компьютерной графики Пешков Анатолий Тимофеевич, БГУИР.doc
    ТипДокументы
    #693275
    страница17 из 20
    1   ...   12   13   14   15   16   17   18   19   20

    6.6 Затенение отрезка плоскостью при перспективной проекции



    П ри отображении проекции трехмерных объектов возникает проблема затенения объектов заднего плана объектами переднего плана. Эту задачу в конечном плане всегда можно свести к задаче затенения отрезка треугольником.

    Графически эту задачу можно представить, как это показано на .

    .


    Рис. Затенение отрезка плоскостью при перспективной проекции ‑68
    На приведенном рисунке в видовой системе координат с началом в точке Е представлен треугольник ABC и отрезок PQ. И требуется определить часть заданного отрезка, которая затеняется плоским треугольником.

    Очевидно, что затеняется та часть отрезка, которая находится во внутренней области бесконечной треугольной усеченной пирамиды с верхней гранью в виде треугольника ABC. На приведенном рисунке это отрезок IJ.

    Задача в общем случае решается в два этапа:

    • на первом определяется точки пересечения отрезка с боковыми гранями бесконечной треугольной пирамиды с вершиной в точке Е, ребра которой проходят через точки А, В, С, т.е. определяется часть отрезка, находящаяся внутри этой пирамиды;

    • на втором определяются пересечение найденного фрагмента отрезка с усеченной пирамидой.

    Рассмотрим действия на этих этапах.

    Первый этап.

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

    На рассматриваемом этапе поочередно ищутся точки пересечения отрезка с тремя гранями бесконечной пирамиды.

    Рассмотрим этот процесс для грани бесконечной пирамиды, проходящей через точки А и В.

    Сначала определим пересечение линии, несущей отрезок, с плоскостью, несущей рассматриваемую грань бесконечной пирамиды.

    Для этого представим уравнение, описывающее линию, несущую отрезок PQ, следующим образом:


      

    Т()= EP + r  , где:

    Т() – векторное представление точки, принадлежащей прямой, проходящей через точки А и В. Координаты этой точки через параметр  определяются как:

    x= xp +r1;

    y= yp +r2;

    z= zp +r3;

     

    r – вектор, определяемый отрезком PQ, причем r =r1,r2,r3, где:

    r1=xQ- xp;

    r2Q- уp;

    r3=zQ- zp;

    xQ, yQ, zQ; xp, yp, zp – соответственно, координаты точек Q и P.



    Зададим уравнение плоскости ЕАВ, проходящей через отрезок АВ и начало системы координат Е, т.е плоскости несущей рассматриваемую грань бесконечной треугольной пирамиды, в виде:

    D1x+ D2y+D3z +D = 0.

    Определим коэффициенты D1,D2,D3, D.

    В общем случае уравнение плоскости, проходящей через три точки L, M, N можно представить в виде определителя:

    Для плоскости ЕАВ, проходящей через начало видовой системы координат, можно записать:

    Отсюда, коэффициенты D1,D2,D3 можно определить как:
    D1= xАzB –yBzА

    D2= xBzА–xАzB;

    D3= xАyB –xByА.
    Значение параметра, соответствующего точи пересечения рассматриваемых плоскости и отрезка, найдем, решив совместно уравнение прямой и уравнение плоскости с найденными коэффициентам D1,D2,D3.
    D1(xA +r1) +D2( yA +r2) +D3(zA +r3) =0,


    Искомая точка пересечения с рассчитанным значением параметра  будет принадлежать отрезку PQ, если будет выполняться условие:
    0<=  <=1. (6.6-1)
    Определим условия принадлежности найденной точки пересечения грани ЕАВ бесконечной треугольной пирамиды. Для этого найдем пересечение линии, несущей отрезок AB и плоскости ЕPQ, проходящей через точки Е, P, Q.

    Представим уравнение линии, несущей отрезок АВ, в векторной параметрической форме:
      

    Т()= EA + R , где:

    • Т() – векторное представление точки, принадлежащей прямой, проходящей через точки А и В. Координаты этой точки через параметр  определяются как:

    • x= xp +R1 ;

    • y= yp +R2;

    • z= zp +R3;



    • R – вектор, определяемый отрезком PQ, причем R =R1,R2,R3, где:

    • R1=xB- xA;

    • R2B- уA;

    • R3=zB- zA;

    • xA, yA, zA; xB, yB, zB – соответственно, координаты точек A и B.


    Зададим уравнение плоскости ЕPQ, несущей PQ и проходящей через начало системы координат Е, в виде:

    U1x+ U2y+U3z = 0.

    Определим коэффициенты U1, U2, U3.

    Уравнение плоскости ЕPQ, проходящей через начало видовой системы координат, можно, используя определитель, записать как:

    Отсюда, коэффициенты U1, U2, U3 можно определить как:

    U1= xpzQ –yQzP;

    U2= xQzP–xPzQ;

    U3= xPyQ –xQyP.
    Значение параметра, соответствующего точrи пересечения рассматриваемых плоскости и отрезка, найдем, решив совместно уравнение прямой АВ и уравнение плоскости с найденными коэффициентам D1,D2,D3.
    U1(xp +R1) +U2( yp +R2) +U3(zp +R3) =0,


    Искомая точка пересечения с рассчитанным значением параметра  будет принадлежать отрезку АВ, если будет выполняться условие:
    0 <=  < =1. (6.6-2)
    Таким образом, чтобы точка пересечения линии, несущей отрезок PQ и плоскости, несущей грань ЕАВ бесконечной пирамиды, была бы точкой пересечения отрезка PQ и грани пирамиды ЕАВ, необходимо одновременное выполнение условия (6.6-1) и (6.6-1).

    Аналогичные расчеты необходимо сделать для всех остальных боковых граней заданной бесконечной пирамиды. Таким образом будет найдены точки I и J пересечения заданного отрезка и боковых граней бесконечной треугольной пирамиды.
    Второй этап

    Рассмотренным выше способом определяется уравнение плоскости, проходящей через точки А, В, С. Пусть это будет уравнение:
    F1x + F2y+ F3x + F = 0. (6.6-3)
    Поочередно подставляя в найденное уравнение плоскости координаты точек E, I, J, рассчитываются значения hE, hI, hJ, определяющие положение точек E, I, J относительно плоскости, несущей верхнюю грань А В С рассматриваемой бесконечной усеченной пирамиды:

    F1xЕ + F2yЕ+ F3zЕ + F = hЕ;

    F1xI + F2yI+ F3zI + F = hI;

    F1xJ + F2yJ + F3x J + F = h J.

    Если hЕ, hI, hJ имеют один и тот же знак, то найденные точки I, J обе находятся перед верхней гранью АВС (). В этом случае можно сделать вывод, что отрезок PQ полностью виден.



    Рис. Затенение отрезка плоскостью при перспективной проекции ‑69
    Если hI, hJ имеют одинаковый знак и этот знак противоположен знаку hЕ, то это означает, что точки I, J располагаются за верхней гранью АВС и являются точками пересечения отрезком PQ c боковых граней бесконечной усеченной пирамиды, и часть заданного отрезка, ограниченная точками I,J, невидна (Рис. Затенение отрезка плоскостью при перспективной проекции -68).

    Если hI, hJ имеют разные знаки, то это означает, что точки I и J располагаются по разные стороны относительно верхней гранью АВС (Рис. Затенение отрезка плоскостью при перспективной проекции -70) В этом случае необходимо найти точку S пересечения отрезка PQ и плоскоси, несущей грань АВС, решив совместно уравнение плоскости, несущей грань АВС, и уравнение линии, несущей отрезок PQ.

    Если точка I находится по одну сторону от треугольника АBC, что и точка Е, то невидимой чстью затеняемого отрезка PQ будет отрезок SJ. В противном случае невидимой чстью затеняемого отрезка PQ будет отрезок SI.


    Q




    Рис. Затенение отрезка плоскостью при перспективной проекции ‑70
    Как видно из выше описанного, в общем случае решение поставленной задачи довольно-таки сложно. Поэтому, прежде чем решать ее в общем случае, целесообразно проверить наличие в задании положения треугольника и отрезка частного случая.

    Рассмотрим несколько таких частных случаев.

    Частный случай 1. Отрезок находится перед треугольником АВС, а, следовательно, он полностью видим (Рис. Затенение отрезка плоскостью при перспективной проекции -71).

    Для того чтобы определить наличие этого случая, достаточно проанализировать положение отрезка относительно плоскости, несущей треугольник АВС. Процедура в этом случае аналогична той, какая использовалась выше для опеделения положения точек I и J по отноiении к плоскости, несущей треугольник ABC.



    Рис. Затенение отрезка плоскостью при перспективной проекции ‑71
    Частный случай 2. Отрезок находится вне рассматриваемой бесконечной пирамиды, а следовательно полностью видим (Рис. Затенение отрезка плоскостью при перспективной проекции -72).

    Для того чтобы определить наличие этого случая необходимо для каждой боковой грани рассматриваемой бесконечной пирамиды проанализировать расположение точек P и Q по одну сторону и проверить будет ли эта сторона внешней. Если окажется, что заданный отрезок находится с внешней стороны относительно хотя бы одной грани, то отрезок полностью видим.



    Рис. Затенение отрезка плоскостью при перспективной проекции ‑72
    Частный случай 3. Отрезок находится внутри бесконечной усеченной пирамиды, а следовательно полностью невидим (Рис. Затенение отрезка плоскостью при перспективной проекции -73).

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



    Рис. Затенение отрезка плоскостью при перспективной проекции ‑73
    что заданный отрезок находится с внутренней стороны относительно всех граней бесконечной усеченной пирамиды, то отрезок полностью невидим.

    1   ...   12   13   14   15   16   17   18   19   20


    написать администратору сайта