首页 > 其他分享 >android短视频开发,js如何设置canvas绕图形中心旋转

android短视频开发,js如何设置canvas绕图形中心旋转

时间:2023-08-30 14:11:06浏览次数:38  
标签:box canvas ctx js width pCenter let android

android短视频开发,js如何设置canvas绕图形中心旋转

1. 准备一个页面

拟写一个页面,用于实验,代码如下

 


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initcal-scale=1.0"/>
<title>对称图 Symmetric graph</title>
<style>
body{
margin: 0;
}
#box{
width: 100vw;
height: 100vw;
}
.control{
padding: 5px;
}
</style>
</head>
<body>
<div id="box"></div>
<div class="control">
<label>
旋转角度:<input type="range" value="0" id="input1" min="0" max="360" /> <small id="label1">0</small>°
</label>
</div>
<script>
window.onload = () => {
//...
}
</script>
</body>
</html>
 

2. 编写脚本代码

页面写好了,再写页面的一些脚本代码,把不会实现的方法放在最后写

 


let box = document.getElementById('box');
let canvas = document.createElement('canvas');
canvas.width=box.offsetWidth;
canvas.height=box.offsetHeight;
let ctx = canvas.getContext('2d');
let pCenter = {
x: canvas.width/2,
y: canvas.height/2,
r: canvas.width/2,
};
ctx.arc(pCenter.x,pCenter.y,pCenter.r*0.02,0,2*Math.PI);
ctx.arc(pCenter.x,pCenter.y,pCenter.r*0.2,0,2*Math.PI);
ctx.stroke();
ctx.beginPath();
let padding = canvas.width*0.2;
ctx.rect(0,0,canvas.width,canvas.height);
ctx.stroke();
ctx.fillStyle = 'rgba(0,0,0,0.2)';
ctx.fillRect(padding,padding,canvas.width-padding*2,canvas.height-padding*2);
let img = new Image();
img.onload = () => {
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.drawImage(img,0,0);
};
img.src = canvas.toDataURL();
box.appendChild(canvas);
const setCenterRotate = (angle) => {
//待实现...
};
const label = document.getElementById('label1');
document.getElementById('input1').addEventListener('change',(e)=>{
label.innerText = e.target.value;
setCenterRotate(parseInt(e.target.value));
}) 

 

以上就是android短视频开发,js如何设置canvas绕图形中心旋转, 更多内容欢迎关注之后的文章

 

标签:box,canvas,ctx,js,width,pCenter,let,android
From: https://www.cnblogs.com/yunbaomengnan/p/17667059.html

相关文章

  • Node.js 服务端如何实现图片防盗链 All In One
    Node.js服务端如何实现图片防盗链AllInOne无扩图片展名URLblobURL一次性链接设置有效期链接禁用缓存ReferrerPolicy,referer禁用IframeCORS白名单动态生成的blob链接,过一段时间后,刷新页面回自动失效......
  • js 遍历json格式数据到table中
    前端aspx文件,js把数据显示在表格中1.首先我们在前端页面写一个table代码。1<tableborder="1"id="gystable"cellpadding="0"cellspacing="0"class="frame5">2......
  • js base64转blob
    /**base64转换成blob数据*/base64ToBlob(dataUrl,type){vararr=dataUrl.split(',');varmime=arr[0].match(/:(.*?);/)[1]||type;//去掉url的头,并转化为bytevarbytes=window.atob(arr[1]);......
  • js 函数的保护函数 防止toString检测
    js函数的保护函数防止toString检测letcatvm={};(()=>{"usestrict";const$toString=Function.toString;constmyFunction_toString_symbol=Symbol('('.concat('',')_',(Math.random()+'').toStr......
  • JS判断变量是否存在或已定义
    前言:因需求修改了公共文件,导致引入公共文件的部分页面因未引入来源js会报错,所以需要在公共文件中增加判断变量是否存在。为了确保代码的可靠性,应该对变量的定义进行检查,从而避免代码在运行时执行错误或不可预期的错误。一、typeofif(typeofmyVar==='undefined'){//my......
  • js实现汉字中文排序
    js实现汉字中文排序的方法数组内的元素是对象,以对象某一个属性进行排序vararr=[{name:'南京',code:'09',info:{province:'江苏'}},{name:'北京',code:'01',info:{province:'北京'}},{name:'上海',code:'02&......
  • js_通过js主动触发原生事件, 以及通过js注册自定义事件并手动触发
    现实情景:在对博客园的样式进行修改时,需要对博客园的中某些DOM的绑定事件进行手动触发主动触发原生事件,以click为例constoBtn2=document.querySelector('#btn2')oBtn2.addEventListener('click',()=>{console.log('click')})constevObj=document.createEv......
  • 【备战金九银十】2023年最全Android岗1000+面试题及答案
    前言马上又准备迎接金九银十了,各大厂,国央企纷纷加入抢人大战竞争尤为激烈!但是,相比求职者来说岗位数量还不是很多,自然而然HR们就开始优中选优,激化“内卷”!如何在众多面试者中脱颖而出?对于很多程序员来说是目前最重要的事。因此本篇通过收集腾讯T4总结的2023年最全的Android岗面试......
  • 史上最全的Android教程安卓开发从基础入门到精通
    前言这几年老是有人在问,Android凉了没?Android开发还有没有发展前景?Android开发还值得入门吗?等等Android出现前几年的发展,前几年需求多,大量新的App项目,大小公司都缺Android开发人员,属于供不应求的状态。随着几年发展,这些年Android开发从业人员确实在增多,科班出身和培训出身的人越来......
  • js前端excel导出带图片(亲测可用)
    1,js-table2excelnpm包有问题,导出后一片空白 2,改写一下js-table2excel/*eslint-disable*/letidTmr;constgetExplorer=()=>{letexplorer=window.navigator.userAgent;//ieif(explorer.indexOf("MSIE")>=0){return'ie';}......