canvas 五角星之回顾【初中三角函数】

当程序中遇到三角函数的时候我是懵逼的,于是百度了“初中三角函数”,

忘了这几个公式的,自己打脸。

目的是通过Canvas画一个五角星,

突破口:只要能通过给定的两个外圈点的半径,和内圈点的半径,借助上面的公式计算出每个五角星点的坐标。

主要代码如下:

【300】指的是外圈的半径

【150】指的是内圈的半径

<canvas id="canvas" width="800" height="800"></canvas>
        var cvs = document.getElementById("canvas");
        var ctx = cvs.getContext("2d");

        ctx.lineWidth = 2;
        ctx.beginPath();

        for (var i = 0; i < 5; i++) {
            ctx.lineTo(Math.cos((18 + i * 72) / 180 * Math.PI) * 300 + 400, -Math.sin((18 + i * 72) / 180 * Math.PI) * r1 + 400);
            ctx.lineTo(Math.cos((54 + i * 72) / 180 * Math.PI) * 150 + 400, -Math.sin((54 + i * 72) / 180 * Math.PI) * r2 + 400);
        }

        ctx.closePath();

        ctx.strokeStyle ="red"
        ctx.stroke();
        

封装成方法

        function draw_star5(ctx , r1 , r2 , x , y , rot){  // r1 大圆半径,r2小圆半径,圆心坐标x,圆心坐标y,rot旋转角度(可无) 顺时针
            ctx.beginPath();
            for (var i = 0; i < 5; i++) {
                ctx.lineTo(Math.cos((18 + i * 72 - rot) / 180 * Math.PI) * r1 + x, -Math.sin((18 + i * 72 - rot) / 180 * Math.PI) * r1 + y);
                ctx.lineTo(Math.cos((54 + i * 72 - rot) / 180 * Math.PI) * r2 + x, -Math.sin((54 + i * 72 - rot) / 180 * Math.PI) * r2 + y);
            }
            ctx.closePath();
        }
时间: 2024-12-17 10:17:59

canvas 五角星之回顾【初中三角函数】的相关文章

初中三角函数

来一起复习下初中三角函数, 我记得当初我数学能考65分     勾股定理: 直角三角形两直角边a,b的平方等于斜边c的平方 三角函数: sinA  = a / c cosA = b / c tanA = a / b cotA = b / a     已知两条边求角度:     sinA  = a /c.  那么我们知道a和c的长度要计算A的角度,  A角度 =  arcsin(a,c)     cosA = b /c.  A角度 = arccos(b,c)     tanA = a /b.  A

JavaScript: 使用 atan2 来绘制 箭头 和 曲线

最近搞Canvas绘图,知道了JavaScript中提供了atan2(y,x)这样一个三角函数.乍眼一看,不认识,毕竟在高中时,学过的三角函数有:sin,cos,arcsin,arccos,tan,arctan等,并没有这个.而工作中又需要用到它,所以这里就做了个简单的了解. 在坐标系中理解tan 和atan 为何存在atan2 ? atan2 应用 何时需要用到 atan2 在坐标系中理解tan 和 atan 回顾一下三角函数tan: tanθ,用三角函数来表示时,它的值等于sinθ/cosθ

13.6-全栈Java笔记:打飞机游戏实战项目|Shell|speed|launchFrame

炮弹类设计 通过炮弹类的设计,我们可以更深入了解构造器的用法以及容器的用法.同时,可能还需要读者稍微回忆一下初中数学曾学过的三角函数,这样更能理解炮弹飞行路径的计算原理. 当然,如果忘记这些知识了也没关系,毕竟在实际开发中很少涉及数学原理性的内容. 炮弹类基本设计 炮弹类我们用实心的黄色椭圆实现,不再加载新的图片.当然,大家课下可以自行找一些炮弹图片亦可. 我们的逻辑是在窗口固定位置(200,200)处生成炮弹,炮弹方向是随机的,并且遇到边界会反弹.  [示例1]Shell类 cn.sxt.ga

WinForm学习 --简单的模拟时钟程序

今天学习GDI+,试着想写一个模拟时钟的小程序,原以为很简单实现:但其实还有些复杂,特别是利用三角函数的那部分,让我四处找资料恶补了一下高中数学才算弄清楚,现在就回顾一下这个程序吧. 程序的目的是要模拟出时钟的效果,那首先就是要画出这个时钟的样子.不考虑美观,一个时钟最简单的组成是一个圆形的表盘,三根直线代表的时针.分针和秒针. <img缺失> 看起来很简单吧,但要怎么样画呢?让我们一步一步来吧: 1.画表盘 Graphics g = this.CreateGraphics(); //创建一个

html5 canvas画五角星(美国队长)

画一波五角星: 美国队长图标 原理:  (1)根据五角星的顶点,外顶点5个,内顶点5个,分成内外圆 (2)由三角函数可表示出每个顶点的位置 (3)利用canvas的lineTo()接口画图 上代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Captain America</tit

Canvas画空心正五角星-扩展DEMO为五星红旗

马上就要国庆了,在这个举国欢庆的日子里面,让我来画一个五角星表表我的爱国之情,啊?那你不是要画一个五星红旗?是的,你猜对了,其实我的最初想法只是画一个空心的正五角星,为了满足你,我拼一拼.在这个过程中却发现了一些问题,数学你原来这么美,我在少年时期就爱上了你,只是在后来我累了,把你抛弃了,值得庆幸的是,我现在又回来了,而你还是给了我一次机会.(现实其实太美,我不敢看,以上情节纯属虚构,切勿模仿,珍惜眼前人) 本文内容申明 内容针对canvas方面做一个星级评级方面的demo前期,仅表述个人观点与

用canvas属性写一个五角星哦

canvas属性中的线条属性学完后,就可以自己写一个简单好看的五角星啦 先是最简单的画布属性的获取 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> </style> </head> <body> <canv

HTML5 Canvas 绘制五角星

代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <head> <title>五角星</title> </head> <body onload="draw()"> &

《每周一点canvas动画》——三角函数

本节主要内容有: 三角函数介绍 常用三角函数解析 鼠标跟随角度旋转 看到三角函数,勾股定理这样的数学名词是不是有种双腿打颤的感觉啊!好吧,就算你已经吓尿了,也不能否认我们中学学习的知识终于有了用武之地,挽起袖子,开整!!! 1.三角函数 什么是三角函数呢?简单的定义:所谓三角函数,在几何上来说就是夹角与边的关系!为了更直观的表示,也为了让忘记的同学回忆起来,这里我给个示意图. 在上图中例出了几个常用的三角函数,角度与边(x, y和R)之间的关系如公式所示!那么在canvas中角度与边之间的关系是