Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Рисование отрезков, окружности и эллипса

Автор:   •  Октябрь 14, 2020  •  Лабораторная работа  •  1,049 Слов (5 Страниц)  •  582 Просмотры

Страница 1 из 5

Карпиеня М.В.

Лабораторная 1

Рисование отрезков, окружности и эллипса

Для решения задачи код написан на языке Python (прикреплены 3 файла):

lab1_Karpiyenia_line.py

lab1_Karpiyenia_circle.py

lab2_Karpiyenia_ellipse.py

Использованы алгоритмы Брезенхема для построения отрезка, окружности, эллипса.

Входящие параметры (координаты, радиус, А и В для эллипса) задаются рандомно

  1. Основная логика для построения отрезка

def draw():

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

    iterate()

    dot(ax, ay)

    dot(bx, by)

    tx=ax

    ty=ay

    dx=math.fabs(bx-ax)

    dy=math.fabs(by-ay)

    s1=numpy.sign(bx-ax)

    s2=numpy.sign(by-ay)

    if(dy>dx):

        temp=dx

        dy=temp

        flg= True

    else:

        flg=False

    t=2*dy-dx

    i=1

    while (i

        dot(tx, ty)

        while(t>0):

            if flg==True:

                tx=tx+s1

            else:

                ty=ty+s2

            t=t-2*dx

        if flg==True:

            ty = ty + s2

        else:

            tx = tx + s1

        t=t+2*dy

        i=i+1

    glutSwapBuffers()

[pic 1]  [pic 2]

  1. Основная логика для построения окружности

def draw():

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

    iterate()

    dot(cx, cy)

    x1 = 0

    y1 = r

    d = 3 - 2 * r

    u=6

    v=10-4*r

    while v<10:

        dot( x=cx + x1, y=cy + y1)

        dot(x=cx + x1, y=cy - y1)

        dot(x=cx - x1, y=cy + y1)

        dot(x=cx - x1, y=cy - y1)

        dot(x=cx + y1, y=cy + x1)

        dot(x=cx + y1, y=cy - x1)

        dot(x=cx - y1, y=cy + x1)

        dot(x=cx - y1, y=cy - x1)

        if d < 0 :

            x1 += 1

            d=d+u

            u=u+4

            v=v+4

...

Скачать:   txt (3.3 Kb)   pdf (113 Kb)   docx (28.7 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club