美文网首页Canvas 系列HTML5 CanvasHTML5
canvas实现星星图案——尖角

canvas实现星星图案——尖角

作者: 星星的成长之路 | 来源:发表于2018-12-18 16:54 被阅读4次

0.前因

最近要用canvas做一个星星图案,网上找了一下,发现有现成的代码

http://www.php.cn/html5-tutorial-353336.html
https://www.cnblogs.com/wufangfang/p/6373972.html
这个链接讲的很清楚其中的数学原理

懒得看的同学,我下面简单解释一下:(图是从上面链接里面借的~)

1.原理:
两个圆确定一个星星.jpg
2.涉及到的知识点:
两个大小不同的同心圆,可以确定一种星星的样子

角度转弧度
角度/180*Math.PI

外顶点坐标 
x:  Math.cos( (18+72*i)/180*Math.PI) * R
y:  Math.sin((18+72*i)/180*Math.PI) * R

内顶点坐标 
x:  Math.cos( (54+72*i)/180*Math.PI) * r
y:  Math.sin((54+72*i)/180*Math.PI) * r
3.实现一个大小形状可调的星星代码:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
//设置边框样式以及填充颜色   
ctx.lineWidth = 3;
ctx.fillStyle = "red";
ctx.strokeStyle = "blue";

// (x,y)起始位置 R外圆半径 r小圆半径  rot初始旋转角度
var x = 100, y = 100, R = 100, r = 50, rot = 0;

function drawStar(cxt, R, r, x, y, rot) {
  cxt.beginPath();
  for (var i = 0; i < 5; i++) {
    cxt.lineTo(Math.cos((18 + 72 * i - rot) / 180 * Math.PI) * R + x, -Math.sin((18 + 72 * i - rot) / 180 * Math.PI) *
      R + y);
    cxt.lineTo(Math.cos((54 + 72 * i - rot) / 180 * Math.PI) * r + x, -Math.sin((54 + 72 * i - rot) / 180 * Math.PI) *
      r + y);
  }
  cxt.closePath();
  ctx.fill();
  ctx.stroke();
}
drawStar(ctx, R, r, x, y, rot)
4.效果图
尖角星星
5.通过调节R和r的值,来得到不同形状的星星

有一些已经不是五角星了,多试试有惊喜~

环肥燕瘦,任君挑选😀
6.然鹅,我这边需要圆角版的星星,以上不符合要求....
圆角版星星
7.圆角另起一篇文章写吧~

链接:

相关文章

  • canvas实现星星图案——尖角

    0.前因 最近要用canvas做一个星星图案,网上找了一下,发现有现成的代码 http://www.php.cn/...

  • canvas实现星星图案——圆角星星

    0.前因 最近要用canvas做一个圆角星星图案,类似于这种: 画星星容易,画圆角就不容易了o(╥﹏╥)o 借鉴了...

  • 为何地板的图案不宜有尖角

    玄关地板的图案忌有尖角冲门。玄关地板的图案花样繁多,但均应以选择寓意吉祥的内容。必须避免选用那些多尖角的图案,而尖...

  • 每日书摘

    幸福对我来说应该是尖尖的、闪闪发亮的星星。锐利的尖角不经打磨过,所以一不小心碰触到星星的尖角就会被刺痛,不过正因为...

  • 每日一句:早安,你好(3)

    幸福对我来说应该是尖尖的、闪闪发亮的星星。锐利的尖角不经打磨过,所以一不小心碰触到星星的尖角就会被刺痛,不过正因为...

  • 用css实现尖角

    前些天在掘金上看到一篇介绍尖角的文章,很有意思,在此记录一下。 如上图,评论或者回复的文本框都有个小尖角,实现方式...

  • css实现尖角号

    左尖角:

  • HTML5 Canvas画图、保存图片、提交文件问题

    需求: 实现在线图片编辑,为原图片添加角标。 解决方案 添加Canvas 首先判断Canvas是否存在,如果不存在...

  • Flutter自定义组件(绘制五角星组件)

    何用canvas绘制我们任何想要任意图案的组件,这篇文章用自定义一个五角星组件来说明。 CsutomPaint 自...

  • 尖角

    文/沐東辰 阿Xing最近很倒霉,晚上睡觉的时候不小心扭到了脖子。这已经第三次,前两次都是发生在上班的时候,他不清...

网友评论

    本文标题:canvas实现星星图案——尖角

    本文链接:https://www.haomeiwen.com/subject/epylkqtx.html