直播app开发搭建,uniapp实现canvas画倾斜的圆

直播app开发搭建,uniapp实现canvas画倾斜的圆

首先在uni的canvas里面是没有画椭圆的函数的,想要实现椭圆有很多种方法

 

可以使用lineTo不停的改变很小的间距来画 但是十分耗费性能

使用arc画圆,使用scale进行变形

可以使用arcTo 贝塞尔曲线等进行椭圆的绘制,主要是要找到控制点,相对麻烦一些

那么我使用的就是第二种方法,主要是因为比较简单,虽然也有一定的弊端 比如进行缩放的时候他的位置会移动 ,再比如画出的曲线线条宽度不一致,但是无伤大雅

 

下面就是这篇文章的主要内容 椭圆是画出来了,但是我们有倾斜的需求该怎么办呢?就要使用到translate和rotate,具体的都在代码里写了

1
<br>// 可以参考下思路 主要还是跟据场景来定<br>drawSkimLine(ctx, x,y,radius) {<br>ctx.lineWidth = 2;<br>ctx.strokeStyle = "red";<br>ctx.beginPath();<br>ctx.translate(x,y) //将画布的原点定位到 椭圆的圆心<br>ctx.rotate(30 * Math.PI / 180); //椭圆倾斜的角度<br>ctx.scale(0.3, 1);//因为arc画的是圆 是通过scale变形变成的椭圆<br>ctx.arc(0, 0, radius, 0, Math.PI * 2);//画圆 注意这里前两个参数是0,0<br>ctx.stroke();<br>ctx.draw();<br> <br> <br>}

​那么这个的重点就是顺序一定一定要按照上面的顺序来,如果先scale 你会发现不管你怎么旋转都是没有用的,如果不先translate去定位原点,旋转和缩放就会脱离轨迹

以上就是 直播app开发搭建,uniapp实现canvas画倾斜的圆,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-08-30 Android直播源码APP开发中阴影效果实现
2021-08-30 直播带货app源码,快应用richtext组件背景色填充问题
2021-08-30 Android视频聊天app源码,暗黑模式快速适配
点击右上角即可分享
微信分享提示