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

微信的新版canvas绘制的图案发生变形和偏移的问题

一,现象

this.context.beginPath();
this.context.moveTo(10, 10);
this.context.lineTo(10, 100);
this.context.lineTo(100, 100);
this.context.lineTo(100, 10);
this.context.lineTo(10, 10);
this.context.stroke();

本来绘制的是正方形,结果绘制出来是个矩形,边的宽度也不一样
请添加图片描述

二,原因

画布初始的宽度是300150,如果不是这个值的话,绘制的内容会被拉伸.(想象着300150画布上的内容被拉伸)

三,解决方案

微信提供了这种问题的解决方案,代码如下:

const query = wx.createSelectorQuery()query.select('#myCanvas').fields({ node: true, size: true }).exec((res) => {const canvas = res[0].nodeconst ctx = canvas.getContext('2d')const dpr = wx.getSystemInfoSync().pixelRatiocanvas.width = res[0].width * dprcanvas.height = res[0].height * dprctx.scale(dpr, dpr)ctx.beginPath();ctx.moveTo(10, 10)ctx.lineTo(10, 100)ctx.lineTo(100, 100)ctx.lineTo(100, 10)ctx.lineTo(10, 10)ctx.stroke()})}

实现的效果:
请添加图片描述

http://www.lryc.cn/news/288046.html

相关文章:

  • [ACM学习] 进制转换
  • redis + 拦截器 :防止数据重复提交
  • 如何进行H.265视频播放器EasyPlayer.js的中性化设置?
  • Ubuntu22.04安装4090显卡驱动
  • YOLOv8优化策略:注意力涨点系列篇 | 一种轻量级的加强通道信息和空间信息提取能力的MLCA注意力
  • 【新书推荐】2.5节 有符号整数和无符号整数
  • RT-Thread: 串口操作、增加串口、串口函数
  • 自然语言处理的新突破:如何推动语音助手和机器翻译的进步
  • vue3 + jeecgBoot 获取项目IP地址
  • Java Server-Sent Events通信
  • [蓝桥杯]真题讲解:冶炼金属(暴力+二分)
  • Fastbee开源物联网项目RoadMap
  • Linux文件管理技术实践
  • Python如何按指定列的空值删除行?
  • 【云原生】Docker的镜像创建
  • 大语言模型推理提速:TensorRT-LLM 高性能推理实践
  • 全面理解“张量”概念
  • MacOS X 安装免费的 LaTex 环境
  • 深入Amazon S3:实战指南
  • Ansible自动化运维(三)Playbook 模式详解
  • LCS板子加逆向搜索
  • 不同知识表示方法与知识图谱
  • Kotlin程序设计 扩展篇(一)
  • 星环科技基于第五代英特尔®至强®可扩展处理器的分布式向量数据库解决方案重磅发布
  • 一体化运维的发展趋势与未来展望
  • 科技云报道:金融大模型落地,还需跨越几重山?
  • C语言入门到精通之练习34:求100之内的素数
  • Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
  • Oracle按日周月年自动分区
  • 单元测试、模块测试、web接口测试