Html5 绘制五星红旗

Html5+JavaScript 在Canvas上绘制五星红旗,具体思路如下图所示:

绘制思路在上图中已有说明,具体代码如下:

 1 <script type="text/javascript">
 2
 3         //绘制五角星,其中一点垂直向上,相隔的点相连,即可绘制。
 4         function drawStar(ctx,starCenterX,starCenterY,starRadius) {
 5             var aX = starCenterX;
 6             var aY = starCenterY - starRadius;
 7             var bX = starCenterX - Math.cos(18 * Math.PI / 180) * starRadius;
 8             var bY = starCenterY - Math.sin(18 * Math.PI / 180) * starRadius;
 9             var cX = starCenterX - Math.cos(54 * Math.PI / 180) * starRadius;
10             var cY = starCenterY + Math.sin(54 * Math.PI / 180) * starRadius;
11             var dX = starCenterX + Math.cos(54 * Math.PI / 180) * starRadius;
12             var dY = starCenterY + Math.sin(54 * Math.PI / 180) * starRadius;
13             var eX = starCenterX + Math.cos(18 * Math.PI / 180) * starRadius;
14             var eY = starCenterY - Math.sin(18 * Math.PI / 180) * starRadius;
15             ctx.beginPath();
16             ctx.fillStyle = "yellow";
17             ctx.moveTo(aX, aY);
18             ctx.lineTo(cX, cY);
19             ctx.lineTo(eX, eY);
20             ctx.lineTo(bX, bY);
21             ctx.lineTo(dX, dY);
22             ctx.lineTo(aX, aY);
23             ctx.fill();
24             ctx.closePath();
25         }
26
27         window.onload = function () {
28             var c = document.getElementById("myCanvas");
29             var ctx = c.getContext("2d");
30             ctx.clearRect(0, 0, c.width, c.height);
31             var width = 300*1.5;
32             var height = 200*1.5;
33             var sX = 50; //其实坐标
34             var sY = 50; //其实坐标
35             var step = 10*1.5;
36             //绘制矩形
37             ctx.beginPath();
38             ctx.lineWidth = 1;
39             ctx.fillStyle = "red";
40             ctx.fillRect(sX, sY, width, height);
41             ctx.closePath();
42             //绘制大五角星
43             var bigStarCenterX = sX + 5 * step;
44             var bigStarCenterY = sY + 5 * step;
45             var bigStarRadius = (height * 3 / 10) / 2; //外接圆直径为旗高3/10,半径要再除以2
46             drawStar(ctx, bigStarCenterX, bigStarCenterY, bigStarRadius);
47             //绘制小五角星
48             var smallStarRadius = (height * 1 / 10) / 2; //外接圆直径为旗高1/10,半径要再除以2
49
50             var smallStarCenterX_1 = sX + 10 * step;
51             var smallStarCenterY_1 = sY + 2 * step;
52             drawStar(ctx, smallStarCenterX_1, smallStarCenterY_1, smallStarRadius);
53             var smallStarCenterX_2 = sX + 12 * step;
54             var smallStarCenterY_2 = sY + 4 * step;
55             drawStar(ctx, smallStarCenterX_2, smallStarCenterY_2, smallStarRadius);
56             var smallStarCenterX_3 = sX + 12 * step;
57             var smallStarCenterY_3 = sY + 7 * step;
58             drawStar(ctx, smallStarCenterX_3, smallStarCenterY_3, smallStarRadius);
59             var smallStarCenterX_4 = sX + 10 * step;
60             var smallStarCenterY_4 = sY + 9 * step;
61             drawStar(ctx, smallStarCenterX_4, smallStarCenterY_4, smallStarRadius);
62         };
63     </script>

时间: 2024-12-28 20:29:49

Html5 绘制五星红旗的相关文章

用Python的Turtle模块绘制五星红旗

Edit 用Python的Turtle模块绘制五星红旗 在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言.python本身内置了这个模块,其可视化的方法可以帮助小孩儿对编程的一些基本理念有所理解. 在作业提交的论坛里看到很多turtle画出来的精美图形,想不出什么要画的东西,于是决定拿五星红旗来练练手. 前期准备 五星红旗绘制参数 Turtle官方文档 turtle的基本操作 # 初始化屏幕 window = turt

HTML5 绘制具有颜色和透明度的矩形

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/33341413 一.自定义画笔样式 如果想为形状图上颜色,需要使用以下两个重要的属性. fillStyle : 设置下来所有fill操作的默认颜色. strokeStyle : 设置下来所有stroke操作的默认颜色. 二.绘制具有颜色和透明度的矩形 <!DOCTYPE html> <html> <head> <meta http-equiv=&

HTML5绘制空心的文本

1.设计源码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>HTML5绘制空心的文本</title> <script type="text/javascript"> /** * 绘制空心的文本 */ function drawHollowText() { //找到<canvas>元素 var can

HTML5 绘制图片

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/33344289 一.绘制图像 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本. drawImage(image,x,y) : 在canvas中(x,y)处绘制图片. drawImage(image,x,y,width,height) : 在canvas中(x,y)处绘制图片,并将其缩放到指定的宽度和高度. drawImage(image,source

html5 绘制类似墙型的背景

最近开发的项目中要使用html5绘制各种虚线包括贝塞尔虚线.圆形虚线.各种虚线段,还包括各种形式的背景墙,截图如下: 从这张图片中可以看出有很多种形式的虚线和背景墙,下面主要介绍一下墙型背景,如下如: 这中背景图有一定的规律,首先应该绘制一个矩形,填充色为蓝色,然后在矩形上面绘制背景墙. 背景墙的绘制步骤如下: 1.绘制横线 2.绘制竖线 3.进行描边 上述三个步骤中不叫麻烦的是绘制竖线,但是如果绘制过下图所示的背景就简单很多了: 这个就是绘制竖线了,设置好的线宽就能看起来很不错了.下面给出绘制

html5 绘制椭圆

最近的项目要使用html5 绘制椭圆,参考网上的例子发现可以使用贝塞尔曲线绘制,不过要绘制四条贝塞尔曲线. 在html5的过程中发现可以使用绘制圆形的方式来绘制椭圆 html5中绘制圆的函数如下: arc(x,y,r,start,end,clockwise);具体函数的含义请自行查看, 实现的具体代码如下: /** * * @param x 中心 x坐标 * @param y 中心 y坐标 * @param a 椭圆 a * @param b 椭圆 b * @param arcStart 起始角

HTML5用canvas绘制五星红旗

在HTML5一览中,我们提到html 5被冠以很多高帽,其中最高的一顶.备受争议的就是"Flash杀手".IT评论界老喜欢用这个词了,杀手无处不在.不管是不是杀手,HTML 5引进的一些新特性确实让人兴奋不已.最令人期待的之一就是 canvas元素. 作为HTML5标准的一部分,Canvas元素允许脚本动态渲染点阵图像.这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 javascript 以使脚本能够把想绘制的东西都绘制到一块画布

Html5绘制时钟

最近在对Html5比较感兴趣,就用空闲时间做一些小例子进行练习,今天绘制一个走动的时钟,具体如下图所示: 具体思路在上图已有说明,代码如下: 1 <script type="text/javascript"> 2 3 //绘制圆形的弧度,ctx 为绘制环境,x,y为绘制中心,r为绘制半径,st为起始弧度,end为结束弧度 4 function circle(ctx, x, y, r, st, end, w) { 5 ctx.lineWidth = w; 6 ctx.begi

Html5 绘制旋转的太极图

采用Html5+JavaScript在Canvas中绘制旋转的太极图,如下图所示: 具体思路和绘制逻辑,在上图中已有说明,代码如下: 1 <script type="text/javascript"> 2 3 //只画边框线,无填充 4 function bigCircle(ctx,x, y, r, st, end, w,oc) { 5 ctx.lineWidth = w; 6 ctx.beginPath(); 7 ctx.arc(x, y, r, st, end, oc)