python求反余弦_python数学.acos反余弦问题
你的问题是你的代码格式太差了,你看不到你的括号错误。在
错误1
例如,这一行:sideA = math.sqrt((x - mousex)**2)+((y - mousey)**2)
如果格式正确,如下所示:
^{pr2}$
当你去掉多余的括号,你可以更清楚地看到发生了什么:sideA = math.sqrt((x - mousex) ** 2) + (y - mousey) ** 2
你只需要把你两边的平方数传给math.sqrt(),然后再加上第二边的平方。它应该是:sideA = math.sqrt((x - mousex) ** 2 + (y - mousey) ** 2)
甚至更好:sideA = math.hypot(x - mousex, y - mousey)
错误2
然后这一行:cos = float(sideA**2)-(sideB**2)-(sideC**2)/(-2*(sideB*sideC))
有一个类似的问题-你在前三个项的周围缺少圆括号,而你只把C边的平方除以2bc。它应该是:cos = (sideA ** 2 - sideB ** 2 - sideC ** 2) / ( -2 * sideB * sideC)
解决方案
由于上述原因,您没有正确计算余弦,所以您传递给math.acos()的内容超出了余弦的允许范围(余弦始终在-1 <= cos A <= 1范围内),所以它给了您域错误。把你的值打印出来会让你看到你得到的东西真的很奇怪。在
这是您的程序的一个固定的工作版本,修改后只直接为mousex和mousey设置值:#!/usr/bin/env python
import math
x, y = 100, 100
centerX, centerY = x + 50, y + 50
mousex, mousey = 100,150
sideA = math.hypot(x - mousex, y - mousey);
sideB = math.hypot(centerX - mousex, centerY - mousey)
sideC = math.hypot(centerX - x, centerY - y)
cosA = (sideB ** 2 + sideC ** 2 - sideA ** 2) / (2 * sideB * sideC)
angle = math.acos(cosA)
print "sideA: %.2f, sideB: %.2f, sideC: %.2f" % (sideA, sideB, sideC)
print "cosA: %.6f" % (cosA)
print "angle: %.2f radians, %.2f degrees" % (angle, math.degrees(angle))
哪些输出:paul@horus:~/src/sandbox$ ./angle.py
sideA: 50.00, sideB: 50.00, sideC: 70.71
cosA: 0.707107
angle: 0.79 radians, 45.00 degrees
paul@horus:~/src/sandbox$
我已经自由地重新安排了你的余弦规则计算,以消除需要否定分母。在
python求反余弦_python数学.acos反余弦问题相关推荐
- python求众数程序_python求众数问题实例
本文实例讲述了python求众数问题的方法,是一个比较典型的应用.分享给大家供大家参考.具体如下: 问题描述: 多重集中重数最大的元素称为众数...就是一个可以有重复元素的集合,在这个集合中重复的次数 ...
- python求交点坐标_Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点 代码如下: # -*- coding: utf-8 -*- import math import numpy as np def insec(p1,r1,p2,r2): x = p1 ...
- python求不规则图形面积_python 微积分之---黎曼和
黎曼求和 这里有一块形状不规则的土地,要测量它的面积,怎么办呢?一个叫黎曼的德国数学家(Bernhard Riemann, 1826-1866),他想了个办法:将这不规则图形切成一条条的小长条儿,然后 ...
- python求数字平均值_python 求10个数的平均数实例
python 求10个数的平均数实例 更新时间:2019年12月16日 18:00:02 作者:qq_20076527 今天小编就为大家分享一篇python 求10个数的平均数实例,具有很好的参考价值 ...
- python求素数算法_Python程序最多可计算n个质数(使用不同算法)
python求素数算法 There are various methods through which we can calculate prime numbers upto n. 我们可以通过多种方 ...
- python 求最大值实例_Python 求数组局部最大值的实例
求数组局部最大值 给定一个无重复元素的数组A[0-N-1],求找到一个该数组的局部最大值.规定:在数组边界外的值无穷小.即:A[0]>A[-1],A[N-1] >A[N]. 显然,遍历一遍 ...
- Python求列表中位数:使用取反操作
1.偶数个元素的列表 [1,2,3,4,5,6],中位数为中间两个的均值,索引分别为2,3,副索引为-3,可以认为是-(2+1),也就是2取反的值~2 2.奇数个数的列表 [1,2,3,4,5],中位 ...
- python爬虫热点代理_Python爬虫实战——反爬策略之代理IP【无忧代理】
一般情况下,我并不建议使用自己的IP来爬取网站,而是会使用代理IP. 原因很简单:爬虫一般都有很高的访问频率,当服务器监测到某个IP以过高的访问频率在进行访问,它便会认为这个IP是一只"爬虫 ...
- python求偏导_python实现点位精度评定
点位精度评定,主要是评定点位数据得l离散度.评定主要是一系列得数学值.在python的numpy中有一些列的函数可以用来实现这一系列的评估值. 1.期望 期望表示一点点位最可能出现的位置.一般情况下期 ...
最新文章
- 3D大脑图谱-Julich-Brain被称作“Google Earth of the brain”
- Powershell快速入门(二) Shell编程
- SLAM | 使用三维位姿图优化减少单目视觉里程计(3D Visual Odometry)定位轨迹的漂移(附源代码)
- CSharpGL(29)初步封装Texture和Framebuffer
- (转载)树、森林与二叉树的转换
- 实例变量和局部变量区别
- 用 man 命令查看 ls 命令的使用手册_Python学习第167课--用man和info打开Linux命令说明书的区别...
- 数据挖掘在电信欺诈侦测中的应用
- 学习vim: 配置python相关插件
- 【转】commons-lang.jar包简介
- Java核心技术点之反射
- 易语言之编译后图标模糊的处理方案
- 最小生成树算法之Prim(普里姆)算法
- 网龙百万3D角色编辑系统介绍
- 数字图像分辨率的认识
- 批量ping多个IP地址
- 谈一谈对JS闭包的理解
- “永远肩负守卫物联网安全的责任和使命”——Ayla CTO发声美网瘫痪事件
- 华硕笔记本X450JB拆机及加装固态硬盘
- 【TCP专题】TCP连接建立