bresenham 画线算法

本文介绍了一个使用HTML5 Canvas API实现的简单画线示例,通过JavaScript编程,展示了如何在一个600x600像素的画布上绘制从左上角到指定位置的直线。

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

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <canvas width="600" height="600" id="C"></canvas>
        <script type="text/javascript">
            
            var canvas = document.getElementById( "C" );
            var context = canvas.getContext( "2d" );
            var image_data = context.getImageData( 0, 0, 600, 600 );
            
            function put_pixel( img_data, x, y ) {
                var index = ( x + y * img_data.width ) * 4;
                img_data.data[index++] = 0;
                img_data.data[index++] = 0;
                img_data.data[index++] = 0;
                img_data.data[index++] = 255;
            }
            
            function draw_line( x1, y1, x2, y2 ) {
                var dx = x2 - x1;
                var dy = y2 - y1;
                var slope  = dy / dx;
                var x = x1, y = y1;
                var error = slope - 0.5;
                for ( var i = 1; i <= dx; ++i ) {
                    put_pixel( image_data, x, y );
                    if ( error >= 0 ) {
                        y = y + 1;
                        error = error - 1;
                    }
                    x = x + 1;
                    error = error + slope;
                }
            }
            
            draw_line( 0, 0, 400, 10 );
            
            context.putImageData( image_data, 0, 0 );
            
        </script>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值