计算机图形学6-Zbuffer消隐算法

计算机图形学6-Zbuffer消隐算法

效果

首先点击几个点作为多边形顶点,按下“e”表示画多边形结束。接下来按下“r”、“y”、“b”三个按键中的任一个选择对应颜色填充多边形。它会慢慢自上往下填充。按照“y”、“b”、“r”能画出下列图形
按下”q”退出
在这里插入图片描述

代码

import cv2
import numpy as np
import time

XLine=1000
YLine=700
img  =  np.zeros((YLine, XLine, 3), np.uint8)#生成背景
pts=[]
z_buffer=np.zeros((XLine,YLine),np.uint32)
z_buffer+=100000  #无穷大

#为了满足需求而设置的值
count=0

def zfunc(x,y):
    return x+y

def draw_func(event, x, y, flags, param):
    global pts
    if event == cv2.EVENT_LBUTTONDOWN:
        print('(x:',x,',y:',y,')')
        str1 = '(x:'+ str(x) + ',y:'+ str(y) + ')'
        #cv2.putText(img,str1 , (x, y), cv2.FONT_HERSHEY_PLAIN,1.0, (0, 0, 255), thickness=1)
        cv2.circle(img,(x,y),1,(0,255,0),thickness=1)
        pts.append([x,y])

#活性边表与新边表中的节点
class Node:
    def __init__(self,xmin,ymax,k1,next=None):
        self.x=xmin#也就是x的初始值
        self.ymax=ymax
        self.k1=k1#也就是δx
        self
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值