当前位置: 首页 > article >正文

js canvas绘制五星红旗

见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......

js canvas绘制五星红旗,供参考,具体尺寸大小随机设的,需再次调整

<!DOCTYPE html>
<html>
<body>
<canvas id="flag" width="800" height="600"></canvas>
 
<script>
// 获取canvas元素
var canvas = document.getElementById('flag');
var ctx = canvas.getContext('2d');
 
// 绘制红色的背景
ctx.fillStyle = '#ED1C24';
ctx.fillRect(0, 0, canvas.width, canvas.height);

function calculateStarPoints(centerX, centerY, outerRadius, innerRadius) {
    const points = [];
    for (let i = 0; i < 5; i++) {
        const outerX = centerX + outerRadius * Math.cos((18 + i * 72) * Math.PI / 180);
        const outerY = centerY - outerRadius * Math.sin((18 + i * 72) * Math.PI / 180);
        points.push({ x: outerX, y: outerY });
        const innerX = centerX + innerRadius * Math.cos((54 + i * 72) * Math.PI / 180);
        const innerY = centerY - innerRadius * Math.sin((54 + i * 72) * Math.PI / 180);
        points.push({ x: innerX, y: innerY });
    }
    return points;
}
function drawStar(ctx, centerX, centerY, outerRadius, innerRadius) {
    const points = calculateStarPoints(centerX, centerY, outerRadius, innerRadius);
    ctx.moveTo(points[0].x, points[0].y);
    for (let i = 1; i < points.length; i++) {
        ctx.lineTo(points[i].x, points[i].y);
    }
}
ctx.fillStyle = 'yellow';
drawStar(ctx, 250, 250, 100, 50);
drawStar(ctx, 400, 120, 30, 15);
drawStar(ctx, 440, 220, 30, 15);
drawStar(ctx, 440, 320, 30, 15);
drawStar(ctx, 400, 420, 30, 15);
ctx.fill();
</script>
 
</body>
</html>

关注我,不失联。有啥问题请留言。

感情恋爱合集

职业发展故事

常用代码片段

程序开发教程

自我备考经验 


http://www.kler.cn/a/467846.html

相关文章:

  • 【开源工业视觉库】启航规划
  • pip error: microsoft visual c++ 14.0 or greater is required
  • 云架构Web端的工业MES系统设计之区分工业过程
  • Chapter4.1 Coding an LLM architecture
  • 你已经分清JAVA中JVM、JDK与JRE的作用和关系了吗?
  • UDP接收和断线重连代码注入案例
  • Outlook2024版如何回到经典Outlook
  • Windows 11 上通过 WSL (Windows Subsystem for Linux) 安装 MySQL 8
  • html+css+js网页设计 美食 美食天下2个页面(里面包含php和mysql)
  • Launcher3主页面加载显示流程分析
  • ROS节点架构设计:提高模块化与可扩展性
  • 算法解析-经典150(区间、栈)
  • 【通识安全】应急救护常识23则
  • C++软件设计模式之访问者模式
  • Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性能压测
  • Android SPRD 工模测试修改
  • boot-126网易邮件发送
  • CSS系列(47)-- Animation Timeline详解
  • 车载软件架构 ---互联网人才怎么转变成汽车软件专家?
  • 【网络协议】开放式最短路径优先协议OSPF详解(三)
  • OSError: [WinError 126] 找不到指定的模块 backend_with_compiler.dll
  • 文件I/O - 文件读写操作
  • 计算机网络 —— 网络编程实操(1)(UDP)
  • C#利用Attribute实现面向切面编程(AOP)
  • LangChain4j 框架探索
  • 前端-计算机网络篇