一、下包,如果没下,看我作业(一)的介绍
二、本文主要实现三角形在一个固定窗体内是如何裁剪的,主要运用cohen-sutherland 算法,想看懂代码必须理解这个算法https://blog.csdn.net/xyisv/article/details/83514472,将图形用窗口区分开来,窗口内的保留,窗口外的丢弃,与窗口存在交点的求出交点,在交点处把线段一分为二,丢弃窗口外的部分,从而实现裁剪。故此,本实验定义函数CohenSutherland(线段端点1的横坐标,线段端点1的纵坐标, 线段端点2的横坐标, 线段端点2的纵坐标)来实现裁剪。
三、代码
#!/usr/bin/python
#-*-coding:UTF-8-*-
import numpy as np
import cv2
LEFT = 1
RIGHT = 2
BOTTOM = 4
TOP = 8
xl = 300
xr = 500
yb = 150
yt = 350 # 窗口的边界值
# Create a black image
img = np.zeros((500, 800, 3), np.uint8) # 相当于建立画布
# 编码
def encode(x, y):
c = 0
if x < xl:
c = c | LEFT
if x > xr:
c = c | RIGHT
if y < yb:
c = c | BOTTOM
if y > yt:
c = c | TOP
return c
# cohen-sutherland 算法
def C