Java开发 三角形算法汇总
Java开发 三角形算法汇总
- 文章简介
- 直角三角形算法
- 取边长
- 任意三角形
- 求边长
- 求夹角
文章简介
本文汇总一下三角形算法,包含 求边长、求角度等常用函数
直角三角形算法
取边长
- 勾股定理,是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方。
引申java算法, 已知两个边长 得出第三边
/*** 直角三角获取斜边* @param a 直角边长* @param b 直角边长* @return 斜边边长*/public static Double getHypotenuseFromLength(double a,double b){return Math.sqrt(a*a+b*b);}/*** 直角三角形 根据直角边和斜边求直角边* @param right 直角边* @param hypotenuse 斜边* @return 直角边长*/public static double getRightSideFromLength(double right,double hypotenuse){return Math.sqrt(hypotenuse*hypotenuse - right*right);}
- 余弦(余弦函数)。在Rt△ABC(直角三角形)中,∠C=90°(如概述图所示),∠A的余弦是它的邻边比三角形的斜边
公式 cos(α)=a/c
引申java算法, 已知一个边长与夹角,求直斜边
/*** 直角三角形 根据角度和直角边长求斜边* @param degree 角度* @param width 直角边长* @return 斜边边长*/public static double getHypotenuseFromDegree(double degree,double width){double cos = Math.cos(Math.toRadians(degree));//余弦return width / cos;}/*** 直角三角形 根据角度和斜边求直角边* @param degree 角度* @param width 斜边* @return 直角边长*/public static double getRightSideFromDegree(double degree,double width){double cos = Math.cos(Math.toRadians(degree));return width * cos;}
任意三角形
- 余弦定理 任何一边的平方等于其他两边平方的和减去这两边与它们夹角的余弦的积的两倍
求边长
/*** 根据 B角和C角的c边长,获取A角-C角的b边长* @param A* @param B* @param c* @return*/public static double getSideFromSideAndDegree(double A,double B,double c){// a÷sin A == b ÷ sin Breturn c/Math.sin(Math.toRadians(A))*Math.sin(Math.toRadians(B));}/*** 获取对边* @param a 边长* @param b 边长* @param degree 角度* @return */public static Double getLengthOfSide(double a,double b,double degree){System.out.println(String.format("a:%s,b:%s,degrees:%s",a,b,degree));return Math.sqrt(b*b+a*a-2*a*b*Math.cos(Math.toRadians(degree)));}
求夹角
/*** 已知边长 求AC 角度* @param a* @param b* @param c* @return*/public static double getDegree(double a,double b,double c){// 计算弧度表示的角double degrees = Math.acos((a*a + b*b -c*c)/(2.0*a*b));// 用角度表示的角return Math.toDegrees(degrees);}
最后推荐一个我自己写的MVVM开源项目《Open MVVM》
(想加扣扣讨论群请进入文章结尾查看群号)
有问题请私信,留言,或者发送邮件到我扣扣邮箱 qingingrunt2010
Java开发 三角形算法汇总相关推荐
- 在高频交易领域中,为什么我们选择 Java 开发外汇算法交易系统?
在高频交易的世界中,自动化应用程序每天处理数亿个市场信号,并在全球各个交易所发送成千上万的订单. 为了保持业务竞争力,响应时间必须始终保持在微秒级,尤其是在黑天鹅异常事件等高峰期. 在典型的体系结构中 ...
- 【面试必备】java开发转算法工程师
今年互联网形式依旧严峻,再次爆发几次大规模裁员潮.我决定把这篇文章分享出来帮助那些对前途感到迷茫的朋友. 在猎头的眼里,我已不是根正苗红的程序员.何为根正苗红?计算机专业毕业,从毕业起就从事特定方向的 ...
- java开发抢红包算法,抢红包算法的实现-java
二倍均值法 原理 原理 剩余红包金额M,剩余人数N,那么:每次抢到金额=随机(0,M/N*2) 保证了每次随机金额的平均值是公平的 假设10人,红包金额100元 第一人:100/10*2=20,随机范 ...
- java开发常用注解汇总
lombok整理 @Data 注解在类上:提供类所有属性的 getting 和 setting 方法,此外还提供了equals.canEqual.hashCode.toString 方法 @Sette ...
- java开发模拟退火算法解决函数最值!
在众多搜索算法之中,模拟退火是一种搜索性的算法,但是它的缺点在于收敛性比较弱. 这里主要运用模拟退火算法解决函数y=xsin(10xpi)+2的最优值问题. 代码及算法原理如下: /********* ...
- Java 开发之 根据坐标计算长度、角度、位置等数据
Java 开发之 根据坐标计算长度.角度.位置等数据 坐标计算 其实也相当于再做三角运算, 每一个坐标在坐标图中都可视作三角形的一个顶角 有了这张图, 大家就能清晰的想象出一个三角形,然后根据三角函数 ...
- java开发工作内容怎么写,附源代码
如何成为一个成功的Java开发工程师?(又称Java企业版),即所谓的高级Java.在您开始学习JavaEE之后,您可以开始在Web开发方面进行工作,因为JavaEE包含了一些用于增强的规范,例如分布 ...
- 京东华为 Java开发历年经典题汇总
这个系列计划收集几百份朋友和读者的面经,作者合集方便查看,各位有面经屯着可以联系我哦 这个系列离结束差的还特别多,会更新涵盖所有一线大厂的所有岗位,也可以关注一下. 百度校招历年经典面试题汇总:Jav ...
- Java开发常见英语词汇汇总
小扎汇总了常用的Java常用名词中英对照,闲来无事可以看看自己认识多少?需要补充哪些常识? A. array数组 add 增加 accessible 可存取的 area面积 audio ...
最新文章
- 【IEEE】2020 年AI's 10 To Watch名单新鲜出炉!MIT韩松、方飞、张含望等华人入选!...
- [树组BIT]训练两题重新理解ver.
- console.log(text)打印不出来的值,用console.log(text.length)却打印出来长度为1?
- springmvc基础入门,你确定你真的理解_双亲委派_了吗?
- 成功解决UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuation b
- h5支付不能打开支付宝 ios_IOS H5支付调起微信支付宝客户端问题总结
- C语言试题八十一之利用递归函数调用方式,将所输入的5个字符,相反顺序打印
- 手机html端悬浮球,手机移动端网站触屏可拖动悬浮球
- AJAX,JSON,GSON
- win10企业版永久关闭自动更新
- 在 ReactNative 的 App 中,集成 Bugly 你会遇到的一些坑
- 【网络教程】sublime安装emmet后提示缺少pyv8的解决方案(如何手动安装pyv8)
- 世界前五大IT咨询公司
- 双缓冲技术解决java游戏图片闪现问题
- 华为手机8.0.0怎么找到云相册_华为云相册下载-华为云相册预约 安卓版v1.0-PC6安卓网...
- 服务器修改客户端密码错误,服务端PAK密码错误解决方法
- 迈阿密大学计算机科学排名,迈阿密大学各大专业排名情况如何呢?
- Python学习笔记(7)——Matplotlib中的Axes.plot(绘制点、线和标记)的用法
- 数据、数据元素、数据项、数据对象的理解
- Bty全国首个PHP宝塔,宝塔Bty分销系统 Bty3安装教程