标签: angle

计算 2 个 CLLocation 之间角度的有效方法?

这是计算从一个 CLLocation 到另一个 CLLocation 的角度(以弧度为单位)的有效方法吗?

-(float)angleFromLocation:(CLLocationCoordinate2D)start toLocation:(CLLocationCoordinate2D)end {
float deltaX = start.latitude - end.latitude;
float deltaY = start.longitude - end.longitude;
float ang = atan2(deltaY, deltaX);

return ang;}
Run Code Online (Sandbox Code Playgroud)

请指教!

任何帮助都感激不尽。

angle core-location coordinates augmented-reality

4
推荐指数
1
解决办法
3483
查看次数

按角度平移点ios

这是我的代码片段 - 它应该围绕原点旋转点,然后将其平移回来

    angle = angle * M_PI / 180;
point1.x = (point1.x) * cos(angle) - (point1.y) * sin(angle);
point1.y = (point1.x) * sin(angle) + (point1.y) * cos(angle);
Run Code Online (Sandbox Code Playgroud)

之后,对于应“移动”的平移点,将根据“旋转”后的象限所在的点来说明条件 - 例如,如果它在 1 中,则 x += 2*x 且 y += 2 *y。这里的问题是旋转:例如,对于 130 度的角度,对于点 (100,100),这里是新点 x:CGFloat-3.09086e-06,y:CGFloat100 的坐标。我究竟做错了什么?

translation angle points ios

4
推荐指数
1
解决办法
1430
查看次数

在python中计算三点之间的角度但仅逆时针

所以我试图计算三点之间的角度。例如

a = [14, 140]
b = [13, 120]
c = [12, 130]
d = [11, 110]

|
|    c    a
|
|  d    b
|____________
Run Code Online (Sandbox Code Playgroud)

说我想计算 ABC 之间的角度我使用以下代码

#create vectors
ba = a - b
bc = c- b
# calculate angle
cosine_angle = numpy.dot(ba,bc) / (numpy.linalg.norm(ba) * numpy.linalg.norm(bc))

angle = numpy.arccos(cosine_angle) 
pAngle = numpy.degrees(angle)
Run Code Online (Sandbox Code Playgroud)

我的脚本运行并且输出角度有效,但我的问题是当我想计算 BCD 时我想要外面的角度而不是里面的角度所以说而不是角度是 120 度我想要角度 240。所以我只想要反-顺时针角度。

不知道如何获得这个值,有人能指出我正确的方向吗?

*编辑:换句话说,我想识别逆时针超过 180 度的角度

*edit2:重复的答案没有回答我的问题,因为我没有使用过很多 java 所以不确定如何在 python 中编码

python math angle

4
推荐指数
1
解决办法
2860
查看次数

创建 R 函数来查找两点之间的距离和角度

我正在尝试创建或找到一个计算两点之间的距离和角度的函数,其想法是我可以有两个带有 x、y 坐标的 data.frame,如下所示:

示例数据集

From <- data.frame(x = c(0.5,1, 4, 0), y = c(1.5,1, 1, 0))

To <- data.frame(x =c(3, 0, 5, 1), y =c(3, 0, 6, 1))
Run Code Online (Sandbox Code Playgroud)

当前功能

现在,我已经成功地使用毕达哥拉斯开发了距离部分:

distance <- function(from, to){
  D <- sqrt((abs(from[,1]-to[,1])^2) + (abs(from[,2]-to[,2])^2))
  return(D)
}
Run Code Online (Sandbox Code Playgroud)

效果很好:

distance(from = From, to = To)


[1] 2.915476 1.414214 5.099020 1.414214
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得角度部分。

到目前为止我尝试过的:

我尝试调整这个问题的第二个解决方案

angle <- function(x,y){
  dot.prod <- x%*%y 
  norm.x <- norm(x,type="2")
  norm.y <- norm(y,type="2")
  theta <- acos(dot.prod / (norm.x * norm.y))
  as.numeric(theta)
}

x …
Run Code Online (Sandbox Code Playgroud)

r function vector distance angle

4
推荐指数
2
解决办法
4530
查看次数

如何优雅地查找角度是否在范围之间?

例如,如果我的角度是 20 度,我可以检查它是否在 [0, 40] 范围内,如下所示:

lower = 0
upper = 40
if angle > lower and angle < upper:
        print('done')
Run Code Online (Sandbox Code Playgroud)

然而,如果我的范围跨越 360 度边界(例如下=350 和上=40),这个逻辑将不起作用。我知道我可以用额外的 if/else 块来处理这个问题,但是有什么优雅的方法吗?

python math angle

4
推荐指数
1
解决办法
2020
查看次数

如何使用正则表达式解析角度值

我使用正则表达式的经验很少,我需要使用正则表达式解析表示为方位的角度值,例如:

"N45°20'15.3" E"

代表:45度,20分钟,15.3秒,位于NE象限.

限制是:

  • 第一个字符可以是"N"或"S"
  • 最后一个字符可以是"E"或"W"
  • 0 <=度<= 59
  • 0 <=分钟<= 59
  • 0 <=秒<60,这可以省略.

Python最好或任何其他语言.

谢谢

python regex angle

3
推荐指数
1
解决办法
760
查看次数

矢量数学,在2个向量之间的平面上找到coördinates

我试图沿样条线生成一个3d管.我有样条曲线的坐标(x1,y1,z1 - x2,y2,z2 - 等),你可以在图中看到黄色.在那些点我需要生成圆,其顶点将在以后的体育场连接.圆圈需要垂直于花键的两个线段的"角",以形成正确的管.请注意,为了便于说明,这些段保持较低.

[显然我不允许发布图片所以请在此链接查看图片] http://img191.imageshack.us/img191/6863/18720019.jpg

我能够在样条的每个点处计算每个环的顶点,但它们都在相同的平面上,即相同的角度.我需要根据他们的"腿"(例如A和B到C)旋转它们.

我一直在想这个,想到了以下几点:

  • 两个线段可以看作2个向量(在图A和B中)
  • 角落(在图示C中)是需要计算顶点环的地方
  • 我需要找到所有顶点所在的平面
  • 然后,我可以使用此平面(=向量?)从中心点计算新向量,即C
  • 并使用radius*sin和cos找到它们的x,y,z

但是,我真的很困惑这个数学部分.我读到了关于点积的但是返回了一个标量,我不知道如何在这种情况下应用.

有人能指出我正确的方向吗?

[编辑]提供有关情况的更多信息:

我需要构建一个浮点缓冲区,其中包含3个描述顶点位置的组,并将由OpenGL ES连接,给定另一个带索引的缓冲区以形成多边形.

为了给管形状,我首先创建了一个浮点数组,其中3-组描述了3d空间中的控制点.

然后连同段密度的变量,我将这些控制点传递给一个函数,该函数使用这些控制点来创建CatmullRom样条曲线,并以另一个浮点数组的形式返回它,这些浮点数组包含3个描述顶点的组. catmull rom样条.

在每个顶点上,我想创建一个顶点环,它的密度也可以不同(每个环的平滑度/顶点数).

所有以前的顶点(控制点和描述catmull rom样条的那些顶点)都将被丢弃.

只有形成管环的顶点才会传递给OpenGL,而OpenGL又将这些顶点连接起来形成最终的管.

我能够创建catmullrom样条,并在其顶点的位置创建环,但是,它们都在相同角度的平面上,而不是遵循样条路径.

[/编辑]

谢谢!

math 3d opengl-es vector angle

3
推荐指数
1
解决办法
2581
查看次数

如果我们知道角度,计算SVG线性梯度属性x1 y1 x2 y2?

正如我们在SVG中所知,角度线性梯度是通过设置属性x1,x2,y1,y2.但是,如果我们只得到角度,

1.如何计算x1,y1,x2,y2的结果?

2.这个公式tan(角度)=(y2-y1)/(x2-x1)是否正确?我该如何计算所有参数.

svg gradient angle linear-gradients

3
推荐指数
2
解决办法
2052
查看次数

确定是从两个角度顺时针或逆时针转动

我在XNA制作游戏.我有敌人和球员.敌人应该逐渐转向玩家.他们应该确定是否需要顺时针或逆时针转动,以较短者为准.

通过使用Atan2,我得到了敌人当前面对的角度和它应该面对的角度(敌人和玩家之间的线的角度)作为弧度.

我虽然得到了一些奇怪的行为.让我们在下面的场景中说.敌人可能会朝错误的方向转过来.

在此输入图像描述

我的代码(下面)不断变长,我仍然遇到问题.此代码是敌人类Update方法的一部分.这必须是游戏中需要克服的常见问题.有没有办法解决这个问题?

            //this bit is just in case enemy has rotated more than 360 degrees (gets set back to 0)
            if (Math.Abs(_blocklist[0]._floor.Revolutions) >= 2)
            {
                _blocklist[0]._floor.Rotation = 0.0f;
            }

            //enemy rotation in radians          
            float blockroat = _blocklist[0]._floor.Rotation;
            // vector to player - vector to enemy
            _vectToPlayer = playerpos - _blocklist[0].Centre
            angletoplayer = (float)(Math.Atan2(_vectToPlayer.Y, _vectToPlayer.X));
            diff = blockroat - angletoplayer;

            if (diff < -Math.PI)
            {
                diff += (float) Math.PI;
                diff = -diff;
            }
            else if (diff > Math.PI)
            { …
Run Code Online (Sandbox Code Playgroud)

.net c# math xna angle

3
推荐指数
2
解决办法
4199
查看次数

在某些角度的连接线具有尖顶点而不是圆角

我的应用程序允许您使用各种工具绘制.其中一个可以让你创建一个角度:你点击三次,然后为你绘制一个角度.不幸的是,它变得非常尖,但由于某种原因在某些角度再次圆润.我正在使用

CGContextSetLineCap(context, kCGLineCapRound);
Run Code Online (Sandbox Code Playgroud)

这是一张图片来举例说明我在说什么:

在此输入图像描述

有谁知道是什么原因造成这种或如何解决它所以它一直是圆的?

在大多数情况下,我所做的只是:

CGContextMoveToPoint(context, first.x, first.y);
CGContextAddLineToPoint(context, second.x, second.y);
CGContextAddLineToPoint(context, third.x, third.y);
Run Code Online (Sandbox Code Playgroud)

中风.

cocoa-touch drawing core-graphics angle ios

3
推荐指数
1
解决办法
81
查看次数