Пример #1
0
def regPlot(x_points,
            y_points,
            line_color=(1, 0, 0),
            point_color=(0, 0, 1),
            axes_color=(0, 1, 0),
            final_x=500,
            plot_points=False):

    # Draw axes
    gl.glColor3f(*axes_color)
    drawDDA((0, 0), (0, 500))
    drawDDA((0, 0), (500, 0))

    # build regression model
    reg_model = LinearRegression().fit(x_points.reshape(-1, 1), y_points)
    slope = reg_model.coef_[0]
    intercept = reg_model.intercept_
    initial_y = int(intercept)
    final_y = int(slope * final_x + intercept)

    # Draw regression line
    gl.glColor3f(*line_color)
    drawDDA((0, initial_y), (final_x, final_y))

    if plot_points:
        #Draw Points
        gl.glColor3f(*point_color)
        for x, y in zip(x_points, y_points):
            drawDot(x, y)
Пример #2
0
 def mouseClicked(button, button_state, cursor_x, cursor_y):
     if (button == glut.GLUT_LEFT_BUTTON
             and button_state == glut.GLUT_DOWN):
         global clicked
         if not clicked:
             #Draw Points
             gl.glColor3f(*point_color)
             for x, y in zip(x_points.astype(int), y_points.astype(int)):
                 drawDot(x, y)
             clicked = True
             gl.glFlush()
Пример #3
0
    def display_circle():
        center1 = (200, 250)
        center2 = (310, 250)
        radius = 50

        drawDot(*center1)
        drawCircle(center1, radius)

        drawDot(*center2)
        drawBresCirle(center2, radius)
        gl.glFlush()
Пример #4
0
def drawDDA(p1, p2):
    dx = p2[0] - p1[0]
    dy = p2[1] - p1[1]

    step = max(abs(dx), abs(dy))

    x_inc = dx/step
    y_inc = dy/step

    x, y = p1

    for _ in range(step):
        drawDot(approx(x), approx(y))
        x += x_inc
        y += y_inc
Пример #5
0
def drawBressenham(p1, p2):
    dx = p2[0] - p1[0]
    dy = p2[1] - p1[1]

    if abs(dy) < abs(dx):

        if p2[0] - p1[0] < 0:
            p1, p2 = p2, p1

        x = p1[0]
        y = p1[1]

        p = 2*dy - dx

        while(x < p2[0]):
            drawDot(x, y)
            x += 1
            if p<0:
                p += 2*dy
            else:
                p += 2*(dy-dx)
                y += 1


    else:

        if p2[1] - p1[1] < 0:
            p1, p2 = p2, p1

        x = p1[0]
        y = p1[1]

        p = 2*dx - dy

        while(y < p2[1]):
            drawDot(x, y)
            y += 1
            if p<0:
                p += 2*dx
            else:
                p += 2*(dx-dy)
                x += 1
Пример #6
0
def drawSymmetry(center, pt):
    xc = center[0]
    yc = center[1]

    x = pt[0]
    y = pt[1]

    drawDot(xc + x, yc + y)
    drawDot(xc - x, yc + y)
    drawDot(xc + x, yc - y)
    drawDot(xc - x, yc - y)

    drawDot(xc + y, yc + x)
    drawDot(xc - y, yc + x)
    drawDot(xc + y, yc - x)
    drawDot(xc - y, yc - x)