由于最近玩机器人,所以总涉及到一些导航地图数据的处理,需要发任务,添加导航点,发送自由导航信息,少不了与canvas打交道了。

首先我们好弄清楚是什么正弦余弦定理,什么是勾股定理,角度和弧度的换算,其实我也差不多忘光光了~~

忘掉不丢人,百度走起~~,哈哈哈。。。。

下图就是点击拖动出来的东西,圆表示机器人,线表示机器的方向,目前我们已知的就是两个点的坐标,一个是圆心的坐标和鼠标移动过程的坐标,通过这连个左边我们要计算出圆的半径(这里的圆半径不是指机器人那个圆的半径,是鼠标时和拖动后产生的圆的半径)

我们先看第一个公式,求圆上任意一点的点坐标

计算两点间的距离我们就的用勾股定理了,这个距离也就是我们的圆的半径

  (a,b 为直角边,c为斜边)

好了,根据上面两条公式可以实现我们想需要的了

我们来就求个弧度,这里会用到反余弦函数哦~~

const countRadius(start:any, end: any) => {const [sx, sy, ex, ey] = [start.offsetX ? start.offsetX : start.x,start.offsetY ? start.offsetY : start.y,end.offsetX ? end.offsetX : end.x,end.offsetY ? end.offsetY : end.y,];return Math.sqrt(Math.pow(ex - sx, 2) + Math.pow(ey - sy, 2));
}const radius = countRadius(startPoint, lastPoint);let radian = Math.acos((lastPoint.offsetX - startPoint.offsetX) / radius);

发现感觉挺完美的,我们逆时针绕一圈,弧度数出来了,但是发现上半圆和下半圆的结果好像是对称的关系,上半圆是0~π,下半圆是从π-0,我们判断下如果是下半圆我就用2π-radian就好了。

if (lastPoint.offsetY - startPoint.offsetY > 0) radian = 2*Math.PI - radian;

正弦余弦定理,求圆弧度或度数相关推荐

  1. asin c语言中 返回值范围_C语言asin()函数:求正弦值为 x 的弧度数

    函数名: asin 头文件: 函数原型: double asin(double x) 功 能: 求正弦值为 x 的弧度数 参数: double x    正弦值.x 的取值必须位于区间[-1, 1]中 ...

  2. Java编程入门与应用 P124——例5-4(计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值)

    Java编程入门与应用 P124--例5-4 计算90度的正弦值.0度的余弦值.1的反正切值.120度的弧度值 因为参数里都是double值,需要以弧度代替角度来实现 /*** Java编程入门与应用 ...

  3. autocad 凸度_AutoCAD中凸度的概念以及求圆弧的凸度

    AutoCAD中凸度的概念以及求圆弧的凸度 AutoCAD中凸度的概念以及求圆弧的凸度 转自http://blog.163.com/[email protected]/blog/static/1621 ...

  4. 【ybtoj 高效进阶 5.1】【动态规划】求好感度

    [ybtoj 高效进阶 5.1][动态规划]求好感度 题目 解题思路 直接用多重背包的话会TLE 所以呢,将件数ai二进制分组 用0/1背包 代码 #include<iostream> # ...

  5. 初中数学题,如图,已知角ABD=30°,角DBC=40°,角BCD=20°,角ACD=50°,求角BAD的度数:

    求角BAD的度数 解答 问题重述 问题分析 解决方案 解答 初中数学题,如图,已知角ABD=30°,角DBC=40°,角BCD=20°,角ACD=50°,求角BAD的度数: 问题重述 如图,已知角AB ...

  6. python余弦定理求角_python余弦定理计算相似度

    #-*- coding: utf-8 -*- importjiebaimportjieba.analyseimportmathdefsentence_resemble():'''计算两个句子的相似度: ...

  7. python余弦定理求第三边_python余弦定理计算相似度

    #-*- coding: utf-8 -*- importjiebaimportjieba.analyseimportmathdefsentence_resemble():'''计算两个句子的相似度: ...

  8. java求30度的正弦值_获取Java中给定值的双曲正弦值

    为了获取Java中给定值的双曲正弦值,我们使用java.lang.Math.sinh()方法.该sinh()方法接受一个以弧度为单位的参数,并返回该参数的双曲正弦值作为角度. 声明-java.lang ...

  9. python余弦定理求角_python实现的文本相似度算法(余弦定理)

    只对汉字进行相似度分析,以单个字为向量,然后每个字在章节中出现的次数,便是以此字向量的值.现在我们假设: 章节1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4--Z1cn:它们在章节中的个数为: ...

  10. python scipy使用余弦定理求句子相似度

    import jieba import gensim import numpy as np from gensim import corpora from scipy.spatial.distance ...

最新文章

  1. 20T数据、百万奖金,同济和武大摘得开放数据创新应用大赛桂冠!
  2. 历届试题 大臣的旅费 树形DP
  3. java中怎么进行字符串替换?
  4. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
  5. 6-4-1:STL之list——list的快速入门、常用接口
  6. 用了Python,老板再也不用担心我写不了CUDA了!
  7. Zend Framework 开发记录 - 代码片段–jquery–select控件
  8. Python数据分析四剑客:IPython、Numpy、pandas、Matplotlib
  9. HDU 2883 kebab(最大流)
  10. ef codefirst字段类型与sqlserver表字段类型对应概要
  11. spss中有关t检验的详细介绍(包含操作过程和结果分析)
  12. 爱心的数学函数方程_笛卡尔的爱心函数
  13. nobody cared (try booting with the irqpoll option)笔记调试全记录
  14. 小智-微直播 使用教程
  15. java拆分日期_java实现日期拆分的方法
  16. ChatGPT开源平替——OpenChatKit(前OpenAI团队打造)
  17. GPON OMCI简介
  18. 永磁同步电机矢量控制中的双闭环是什么意思_STM32 TALK | 无感FOC方案原理机器控制难点分析...
  19. 马云、马化腾要合作了?阿里传出新消息,或将支持微信支付
  20. 1-2 认识905.4王国的交流规范

热门文章

  1. 值得收藏的JavaScript代码
  2. 光纤配线柜如何选择,又该怎么安装?
  3. mac 安装virtualbox虚拟机
  4. Windows开启 CPU 虚拟化 + 关闭 Hyper-V
  5. cargo test 报错 STATUS_DLL_NOT_FOUND
  6. Typora中写论文怎么添加reference(参考文献)
  7. postman接口测试之断言+参数化
  8. 一文看懂各种无线信道衰落的特征及分类
  9. ubuntu18.04安装wine+caj阅读器
  10. C. Get an Even String题解(dp)