JS Math.sin() 与 Math.cos() 用法(画圆)

2024-05-09 12:18
文章标签 math 画圆 js sin cos 用法

本文主要是介绍JS Math.sin() 与 Math.cos() 用法(画圆),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Math.sin(x)      x 的正玄值。返回值在 -1.0 到 1.0 之间;

Math.cos(x)    x 的余弦值。返回的是 -1.0 到 1.0 之间的数;

这两个函数中的X 都是指的“弧度”而非“角度”,弧度的计算公式为: 2*PI/360*角度;

30° 角度 的弧度 = 2*PI/360*30

 

如何得到圆上每个点的坐标?

解决思路:根据三角形的正玄、余弦来得值;

假设一个圆的圆心坐标是(a,b),半径为r,

则圆上每个点的X坐标=a + Math.sin(2*Math.PI / 360) * r ;Y坐标=b + Math.cos(2*Math.PI / 360) * r ;

 

如何求时钟的秒针转动一圈的轨迹?

假设秒针的初始值(起点)为12点钟方向,圆心的坐标为(a,b)。

解决思路:一分钟为60秒,一个圆为360°,所以平均每秒的转动角度为 360°/60 = 6°;

 

for(var times=0; times<60; times++) {

      var hudu = (2*Math.PI / 360) * 6 * times;

       var X = a + Math.sin(hudu) * r;

       var Y = b - Math.cos(hudu) * r    //  注意此处是“-”号,因为我们要得到的Y是相对于(0,0)而言的。

}

这篇关于JS Math.sin() 与 Math.cos() 用法(画圆)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973394

相关文章

ARM_SWP指令用法

SWP 寄存器和存储器交换指令。SWP指令用于将一个内存单元(该单元地址放在寄存器Rn中)的内容读取到一个寄存器Rd 中,同时将另一个寄存器Rm 的内容写入到该内存单元中。使用SWP 可实现信号量操作。 指令格式如下: SWP{cond}{B} Rd,Rm,[Rn] 其中,B 为可选后缀,若有B,则交换字节,否则交换32 位字:Rd 为数据从存储器加载到的寄存器;Rm 的数据用于存储到存储

Vue.js之Socket.IO 使用

一.前言 在很多需求业务中,都需要浏览器和服务器实时通信来实现功能,比如:扫码登录(扫码后,手机确认登录,PC网页完成登录并跳转)、订单语言提醒等,这些都是建立在两端实时通信的基础上的。对前端而言,来实现浏览器和服务器实时通信,最好的选择就是Socket.IO库,能够快速的实现两端实时通信功能。 1、什么是 Socket.IO? Socket.IO是一个WebSocket库,可以在浏览器和服

async与await 用法

一.async async 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。 1.async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。 async function helloAsync() {return "hello world";}var asyn = helloAsync();console

ES6之Promise用法解析

一.Promise是什么 promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外) 并未剥夺函数return的能力,因此无需层层传递callback,进行回调获取数据 主要用于异步计算可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果可以在对象之间传递和操作promise,帮助我们处理队列代码风格,容易理解,便于维护,多个异步等待合并便于解决 二.实例

html 复制标签内文本的按钮的 js 实现【学习过程】【浏览器兼容】

想要实现div中的文字内容一键复制到剪切板中,一开始在网上search到两种方案: 方案1: <script type="text/javascript"> function jsCopy(s){ var obj=document.getElementById(s);obj.select(); //选择对象 document.execCommand("Copy"); //执行浏览器复制命令al

前端JS必用工具【js-tool-big-box】学习,检测当前是否为手机端浏览器,检测某元素是否处于当前可视范围内

这一小节,js-tool-big-box工具库又迎来了两个非常实用功能成员,分别是检测当前浏览器是否为手机端浏览器,还有检测某元素当前是否处于可视范围内。 1 安装引入 通过npm安装,执行以下命令 npm i js-tool-big-box 这两个功能,工具库提供了一个叫browserBox的对象,所以代码中需要引入这个对象 import { browserBox } from

【坑】在js代码中误用保留关键字

写了一个小的测试代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><

【坑】在HTML页面中缺少!doctype html造成部分js代码失效问题

<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><script type="text/javascript">function sayhello() {alert("hello shushu");}function resizeRock() {document.getElementById("roc

原生js实现div随鼠标移动效果

原生js实例demos:    http://pandoraui.github.io/learning-javascript/lesson2/10.html 原生js常用事件: 当网页加载时候: onload和onunload事件 <body onload="checkCookies()"> 或者window.οnlοad=function(){} 当图像加载的时候: 当鼠标移动到

js与webView的简单交互

需求是点击html中的图片或者按钮,在Android中实现界面跳转 首先明确html中声明的点击事件:如图 我们看到声明的点击事件onClick是:window.Android.showToast(); window好像是html中的元素,w3c的介绍是window对象表示是浏览器打开的窗口 Android:这个先假设是一级名称 showToast:假设是二级名称 然后在A