互动媒体技术作业A1

互动媒体技术作业A1
作业内容

编写一个能够实现各种线条效果的库

line:

闪烁线 一条线段三等分 随时间在白色与红、绿、蓝之间闪烁

参数:起始坐标 终止坐标 drag是滑轮传递的参数

function twinkleLine0228(x1,y1,x2,y2,drag){
  strokeWeight(5);

  dx=x2-x1;dy=y2-y1;
  point1x=x1+dx/3;point2x=x2-dx/3;
  point1y=y1+dy/3;point2y=y2-dy/3;

  var t = millis() / 20;

  var colorChange=200*Math.sin(t * Math.PI/180);

  drag=-drag;
  colorChange+=drag;
  stroke(200+drag,colorChange,colorChange);
  line(x1,y1,point1x,point1y);
  stroke(colorChange,200+drag,colorChange);
  line(point1x,point1y,point2x,point2y);
  stroke(colorChange,colorChange,200+drag);
  line(point2x,point2y,x2,y2);

}

请添加图片描述
请添加图片描述

折叠线 一条线段三等分,形成闪电状,分别不同颜色显示

参数:起始坐标 终止坐标 drag是滑轮传递的参数

function foldLine0028(x1,y1,x2,y2,drag){
  stroke(11);

  dx=x2-x1;dy=y2-y1;
  absX=abs(dx);absY=abs(dy);
    
  if(absX<=absY){
    point1x=x1+dx/2;point2x=x2-dx/2;
    point1y=y1+dy/3;point2y=y2-dy/3;
  }
  else{
    point1x=x1+dx/3;point2x=x2-dx/3;
    point1y=y1+dy/6;point2y=y2-dy/6;
  }

  sweight=1000/(absX+absY);

  strokeWeight(sweight);
  
  if(drag>80){
    drag=80;
  }
  stroke(180-drag,100,100);
  line(x1,y1,point1x,point1y);
  stroke(100,180-drag,100);
  line(point1x,point1y,point2x,point2y);
  stroke(100,100,180-drag);
  line(point2x,point2y,x2,y2);

  stroke(226);
  strokeWeight(1);
}

请添加图片描述

circle:

简单黑洞 从边缘到中心颜色由浅到深的圆

参数:圆心坐标 半径 黑洞层次 黑洞中心颜色

function blackholeCircle0228(x,y,r,loop,centerColor){
  noStroke();
  fColor=centerColor;fR=r;
  dR=r/loop;
  dColor=centerColor/loop;
  for(var i=0;i<loop;i++){
    fill(fColor);
    circle(x,y,fR);   
    fColor-=dColor;
    fR-=dR; 
  }
  fill(0);
  stroke(128);
}

请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值