canvas除了画图还能怎么用?

这个假期有点长,也有点幸福

有电
有水
有WiFi
有假期
有家人朋友陪伴
疫情也得到了控制
一切都在慢慢变好
快乐真的很简单~
在这里插入图片描述

canvas飘动的爱心心形动画特效

效果如下图:
点击链接查看效果

http://www.zhulele.online/%E9%BC%A0%E6%A0%87/canvas_love.html
在这里插入图片描述
代码如下:

<!doctype html>  
<html>  
<head>    
<title>Heart</title>   
<meta charset="UTF-8">    
</head>    
<body>    
	<canvas id="c"></canvas>    
	<script>    
   		var b = document.body;
    	var c = document.getElementsByTagName('canvas')[0];
    	var a = c.getContext('2d');
	</script>
    <script>
	eval('var M=Math,n=M.pow,i,E=2,F="rgba(233,61,109,",d=M.cos,z=M.sin,L=1,u=30,W=window,w=c.width=W.innerWidth,h=c.height=W.innerHeight,r=_1){return M.random()*2-1},y="px Arial",v="乐乐",q="♥",X=w/2,Y=h/2,T=4,p=_1){var e=this;e.g=_1){e.x=X;e.y=Y;e.k=0;e.l=0;e.t=M.random()*19000;e.c=e.t};e.d=_1){a.fillStyle=F+(e.c/e.t)+")";a.fillText(q,e.x,e.y);e.c-=50;e.x+=e.k;e.y+=e.l;e.k=e.k+r();e.l=e.l+r();if(e.c<0||e.x>w||e.x<0||e.y>h||e.y<0){e.g()}};e.g()},A,B;a.textAlign="center";a.strokeStyle="#000";a.lineWidth=2;for(i=0;i<350;i++){M[i]=new p()}setInterval(_1){a.clearRect(0,0,w,h);a.font=u+y;X=(w/6*n(z(T),3)+w/2);Y=0.8*(-h/40*(13*d(T)-5*d(2*T)-2*d(3*T)-d(4*T))+h/2.3);T+=(z(T)+3)/99;for(i=0;i<350;i++){with(M[i]){A=(x/w-0.5)*2,B=-(y/h-0.5);if(L&&(A*A+2*n((B-0.5*n(M.abs(A),0.5)),2))>0.11){k=l=0}d()}}a.font=120+y;if(E>0.1){if(E<1){a.fillStyle=F+E+")";a.fillText("Click",w/2,h/2)}E-=0.02}a.fillStyle="#E93D6D";a.fillText(v,X,Y+u);a.strokeText(v,X,Y+u)},50);b.bgColor="#FFEFF2";c.οnmοuseup=_1){L=(L)?0:1}'.replace(/(_1)/g,'function('))
    </script>
</body> 
</html>

如果您对canvas并不了解你可以参考我的另一篇文章https://blog.csdn.net/qq_43009710/article/details/105214268

在Eclipse中使用Canvas来实现画图跟踪,你需要继承`Canvas`类,并重写`paint()`方法来绘制图形。以下是一个简单的示例代码: ``` import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; public class DrawAndTrack extends Canvas { private List<Point> points = new ArrayList<Point>(); public DrawAndTrack() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { points.add(e.getPoint()); repaint(); } }); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.RED); for (int i = 0; i < points.size(); i++) { Point p = points.get(i); g.fillOval(p.x, p.y, 5, 5); if (i > 0) { Point p2 = points.get(i - 1); g.drawLine(p.x, p.y, p2.x, p2.y); } } } public static void main(String[] args) { JFrame frame = new JFrame("Draw and Track"); DrawAndTrack canvas = new DrawAndTrack(); canvas.setSize(400, 400); frame.add(canvas); frame.pack(); frame.setVisible(true); } } ``` 在这个例子中,我们在`DrawAndTrack`类的构造函数中添加了一个鼠标监听器,用于捕获鼠标点击事件,并将每个点坐标添加到`points`列表中。在`paint()`方法中,我们使用`Graphics`类来绘制每个点和它们之间的线条。最后,我们在`main()`方法中创建了一个`DrawAndTrack`对象,并将其添加到`JFrame`中显示。 你可以尝试修改颜色、线宽、绘制形状等参数,来实现不同的画图效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐乐呀168

整理资料不易,谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值