第四章 JavaScript画图效果--画斜线

本博客介绍了如何使用JavaScript来绘制斜线,提供了HTMLDrawLine函数和drawLine辅助函数,通过计算斜线上的点并创建span元素来实现画线效果。代码详细解释了各个部分的功能,帮助读者理解JavaScript画图的原理。

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

第四章 JavaScript画图效果
效 果 演 示:
JavaScript代码:
 function HTMLDrawLine(){
  divdraw.innerHTML=drawLine(150,250,450,300,"red")+drawLine(350,150,509,450,"black");}
 function drawLine(x0,y0,x1,y1,color) {
  var linespan="";
  if (y0 == y1){
   if (x0>x1) {
    var t=x0;
    x0=x1;
    x1=t;
   }
   linespan=" <span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";height:1;width:"+Math.abs(x1-x0)+"'> </span>";
  }else if (x0==x1){
   if (y0>y1){
    var t=y0;
    y0=y1;
    y1=t;
   }
   linespan=" <span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";width:1;height:"+Math.abs(y1-y0)+"'> </span>";
  }else{
   var lx=x1-x0;
   var ly=y1-y0;
   var j=Math.sqrt(lx*lx+ly*ly);
   linespan=new Array();
   for (var i=0;i <j;i+=1){
    var p=i/j;
    var px=parseInt(x0+lx*p);
    var py=parseInt(y0+ly*p);
    linespan[linespan.length]=" <span style='top:"+py+";left:"+px+";height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'> </span>";
   }
  linespan=linespan.join("");
 }
 return linespan;
}
JavaScript代码讲解:
function HTMLDrawLine(){
 divdraw.innerHTML=drawLine(150,250,450,300,"red")+drawLine(350,150,509,450,"black");
}
设置两个斜线的坐标,斜线的颜色
function drawLine(x0,y0,x1,y1,color) {
var linespan="";
绘制斜线的功能函数, x0,y0开始画线的坐标,x1,y1结束的坐标,color线条的颜色
if (y0 == y1){
   if (x0>x1) {
    var t=x0;
    x0=x1;
    x1=t;
   }
当y0=y1时为水平线
linespan=" <span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";height:1;width:"+Math.abs(x1-x0)+"'> </span>"; 动态设置“<SPAN>”标记的样式属性
}else if (x0==x1){
   if (y0>y1){
    var t=y0;
    y0=y1;
    y1=t;
   }
当x0=x1时为垂直线
}else{
   var lx=x1-x0;
   var ly=y1-y0;
var j=Math.sqrt(lx*lx+ly*ly);
定义两个变量lx, ly
通过直角公式,计算斜线的长度
linespan=new Array();
for (var i=0;i <j;i+=1){
var p=i/j;
var px=parseInt(x0+lx*p);
var py=parseInt(y0+ly*p);   
计算每个一 <SPAN>标记的坐标
linespan[linespan.length]=" <span style='top:"+py+";left:"+px+";height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'> </span>";
   }
设置数组的相应元素内容
linespan=linespan.join("");
}
return linespan; }   
通过join方法组合数组的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值