找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5635|回复: 15
收起左侧

用arduino已知等腰三角形三边求角度

[复制链接]
ID:165395 发表于 2017-3-9 13:48 | 显示全部楼层 |阅读模式
新手,想实现用arduino已知等腰三角形三边求角度
有大神会写这个程序么,感觉自己没什么思路
回复

使用道具 举报

ID:165395 发表于 2017-3-9 13:49 | 显示全部楼层
顶起,不要让帖子沉了呀
回复

使用道具 举报

ID:151348 发表于 2017-3-9 14:06 | 显示全部楼层
使用math.h吧,http://www.51hei.com/bbs/dpj-33486-1.html也给出了math.h
回复

使用道具 举报

ID:165395 发表于 2017-3-9 16:02 | 显示全部楼层
顶起,别让帖子沉了
回复

使用道具 举报

ID:151348 发表于 2017-3-9 19:58 | 显示全部楼层

余弦定理
回复

使用道具 举报

ID:165395 发表于 2017-3-11 08:50 | 显示全部楼层
谢谢大神,但还是有点不明白
回复

使用道具 举报

ID:123289 发表于 2017-3-11 10:38 | 显示全部楼层
此问主要难点是需要进行反三角运算。
当然先算出正切值很方便,正弦值也不难。下面说求角度的方法:
方法1:做一个三角函数表,用查表的方式求出答案,查不到的细节,用插值的方法求出。
方法2:直接找数学函数库,调用。
方法3:很难,需要数学功底。涉及微积分、牛顿叠代等……,不提了。
回复

使用道具 举报

ID:165395 发表于 2017-3-11 21:50 | 显示全部楼层
yzwzfyz 发表于 2017-3-11 10:38
此问主要难点是需要进行反三角运算。
当然先算出正切值很方便,正弦值也不难。下面说求角度的方法:
方法 ...

嗯嗯,好滴,大神我能加你QQ么
回复

使用道具 举报

ID:165395 发表于 2017-3-11 21:58 | 显示全部楼层
imxuheng 发表于 2017-3-9 14:06
使用math.h吧,http://www.51hei.com/bbs/dpj-33486-1.html也给出了math.h

但是我看三角函数的参数只有一个,但是如果用余弦算,不应该是已知三边然后可求出角的度数,我感觉应该有三个参数...略迷茫
回复

使用道具 举报

ID:165395 发表于 2017-3-11 22:01 | 显示全部楼层
yzwzfyz 发表于 2017-3-11 10:38
此问主要难点是需要进行反三角运算。
当然先算出正切值很方便,正弦值也不难。下面说求角度的方法:
方法 ...

我们要做的东西只能已知三边,然后求角度,感觉不能用正弦定理或求正切,我感觉应该用余弦定理
,但是我看那个math.h文件中关于余弦函数的形参只有一个,按理说不应该是三个么,略迷茫
回复

使用道具 举报

ID:151348 发表于 2017-3-11 22:42 | 显示全部楼层
怎么会有3个呢,形参只有角度,也就是你需要求的,当然根据3边只能求出余弦值,zai根据余弦值查表得到角度。也不知道你怎么会让单片机求角度,加速度传感器?
回复

使用道具 举报

ID:170069 发表于 2017-3-12 14:01 | 显示全部楼层
正弦定理然后加上MATH.H就可以了
回复

使用道具 举报

ID:155507 发表于 2017-3-12 15:08 | 显示全部楼层
已知一个等腰三角形三个边ABC的长度,AB=75,AC=75,BC=19,求这个等腰三角形的顶角角度是多少(不是直角等腰三角形)

cosA=(AB2+AC2-BC2)/(2AB×AC) =(752+752-192)/(2×75×75)=0.96791111111111111111111111111111
A=14.554027753139177660897660110218°

cosA=1 - BC2/2AB2

  1. //sides of a triangle 等腰三角形的三边都知道求角度?
  2. const int a = 75; // 等腰三角形的等边
  3. const int c = 19;
  4. float A;  // 其余弦值

  5. //angles of the triangle
  6. float C; // 等腰三角形的顶角角度


  7. void setup() {
  8.         // put your setup code here, to run once:
  9.         // initialize the serial communication:
  10.         Serial.begin(9600);
  11. }

  12. void loop() {
  13.         // put your main code here, to run repeatedly:

  14.         A = 1.0 - ((float)(c*c)/ (float)(2*a*a));
  15.         Serial.println(A);  // 其余弦值 cos(A)
  16.         C = acos(A);
  17.         Serial.println(C);  // 等腰三角形的顶角弧度
  18.         C = C/3.141592654 *180;
  19.         Serial.println(C);  //等腰三角形的顶角角度
  20.         delay(5000);
  21. }

复制代码
回复

使用道具 举报

ID:123289 发表于 2017-3-13 13:12 | 显示全部楼层
还是数学基础,用勾股定理,正切,正弦,余弦轮换不成问题,也有许多三角轮换公式可用。
回复

使用道具 举报

ID:165395 发表于 2017-3-31 21:36 | 显示全部楼层
angmall 发表于 2017-3-12 15:08
已知一个等腰三角形三个边ABC的长度,AB=75,AC=75,BC=19,求这个等腰三角形的顶角角度是多少(不是直角等腰三 ...

好厉害,谢谢大神
回复

使用道具 举报

ID:165395 发表于 2017-3-31 21:36 | 显示全部楼层
yzwzfyz 发表于 2017-3-13 13:12
还是数学基础,用勾股定理,正切,正弦,余弦轮换不成问题,也有许多三角轮换公式可用。

嗯呐
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表