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

用Canvas绘制2D平面近大远小的马路斑马线

用Canvas绘制2D平面近大远小的马路斑马线

设置canvas和上下文:

首先,你需要创建一个元素,并获取其2D渲染上下文。

绘制斑马线:

使用fillRect或strokeRect方法绘制斑马线。你可以通过循环和计算来绘制多条具有不同宽度和间隔的斑马线。

添加道路背景(可选):

为了增加效果,你还可以绘制一个道路背景,比如灰色或沥青色。

代码

HTML

<canvas id="myCanvas" width="1960" height="1080"></canvas> 

JavaScript

const canvas = document.getElementById('myCanvas');  
const ctx = canvas.getContext('2d');  
// 定义马路人行道和斑马线属性变量  
const sidewalkLength = 800; // 30米,按100像素/米计算  
const sidewalkWidth = 1000; // 人行道宽度  
const sidewalkColor = '#808080'; // 人行道颜色
const banmaWidth = 20;
const banmaLength = 300;
const banmaGap = 15;
// 绘制马路
ctx.fillStyle = sidewalkColor;  
ctx.fillRect(0, 0, sidewalkLength, sidewalkWidth);
ctx.save();
// 绘制人行道 
ctx.translate(350, 0);
ctx.rotate(Math.PI/2);
ctx.fillStyle = 'white';
for (let i = 0; i * banmaWidth < sidewalkLength; i ++) {ctx.fillRect((banmaWidth + banmaWidth + i * 2 ) * i, -i * 2.5, banmaWidth + i * 2, banmaLength + i * 5);
}
ctx.restore();
ctx.font = "15px serif";
ctx.strokeText("模拟近大远小的斑马线", 450, 300);

效果
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 通勤必备!重回儿时回忆,完全免费!
  • 如何使用GPT?初学者的指南
  • 【css】如何修改input选中历史选项后,自动填充的蓝色背景色
  • DGit介绍
  • 使用 ML.NET CLI 自动进行模型训练
  • nginx日志报错信息: The system cannot find the path specified)解决方案
  • 本地快速部署 SuperSonic
  • Nginx缓存之代理缓存配置
  • next是什么???
  • 【Docker实战】jenkins卡在编译Dockerfile的问题
  • Android OTA 升级基础知识详解+源码分析
  • 闲鱼商品详情API:深入解析与应用指南
  • 在 KubeSphere 上快速安装和使用 KDP 云原生数据平台
  • 架构设计 - Nginx Proxy Cache 缓存配置
  • 胡说八道(24.6.17)——STM32以及通信杂谈
  • Android 控件背景颜色处理
  • angular组件开发
  • JavaScript设计模式与开发实践系列之策略模式
  • mysql中InnoDB引擎中页的概念
  • node入门
  • Python实现BT种子转化为磁力链接【实战】
  • Python语法速览与机器学习开发环境搭建
  • Spring声明式事务管理之一:五大属性分析
  • SQL 难点解决:记录的引用
  • Vue小说阅读器(仿追书神器)
  • 测试开发系类之接口自动化测试
  • 翻译--Thinking in React
  • 基于webpack 的 vue 多页架构
  • 记一次用 NodeJs 实现模拟登录的思路
  • 力扣(LeetCode)56
  • 前端性能优化——回流与重绘
  • 驱动程序原理
  • 为什么要用IPython/Jupyter?
  • 协程
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # 数据结构
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (C语言)二分查找 超详细
  • (day 12)JavaScript学习笔记(数组3)
  • (NSDate) 时间 (time )比较
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (十六)视图变换 正交投影 透视投影
  • (十三)Maven插件解析运行机制
  • (算法二)滑动窗口
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET 快速重构概要1
  • // an array of int