一个粗陋的三角形填充算法

本文介绍了一种用于在2D屏幕上填充三角形的算法,通过计算和遍历三角形边界的像素来完成填充。文章中展示了核心的`fillTriangle`方法,该方法首先确定三角形的最小和最大y坐标,然后利用bresenham画线算法计算每行的边界像素,并进行绘制。同时,还提供了一个辅助方法`calculateLine`用于计算线段的像素点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 谢谢我的老师,唐泽圣教授在其《计算机图形学基础》一书中导出的通用bresenham画线算法代码

     /**
     *sample to fill a trangle on 2d screen
     
*/

    
public   void  fillTriangle( int  x1, int  y1, int  x2,  int  y2, int  x3, int  y3) {
        System.
out.println("fillTriangle:");
        System.
out.print(x1+","+y1+",");
        System.
out.print(x2+","+y2+",");
        System.
out.println(x3+","+y3+",");
        
        
int ymin,ymax;
        
        ymax
=Math.max(Math.max(y1,y2),y3);
        ymin
=Math.min(y1,Math.min(y2,y3));
        System.
out.println("maxY="+ymax+" minY="+ymax);
        triangleScanlineMinMaxArrays
=new int[(ymax-ymin+1)][];
        triangleDeltaY
=ymin;
        
        calculateLine(x1,y1,x2,y2);
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值