标签: angle

你如何计算glsl中两个法线之间的角度?

你如何计算glsl中两个法线之间的角度?我试图将菲涅尔效果添加到对象的外边缘(将该效果与phong着色相结合),我认为角度是我唯一缺少的.

片段着色器:

varying vec3 N;
varying vec3 v;

void main(void) {
  v = vec3(gl_ModelViewMatrix * gl_Vertex);
  N = normalize(gl_NormalMatrix * gl_Normal);
  gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Run Code Online (Sandbox Code Playgroud)

顶点着色器:

varying vec3 N;
varying vec3 v;

void main(void) {
  vec3 L = normalize(gl_LightSource[0].position.xyz - v);
  vec3 E = normalize(-v);
  vec3 R = normalize(-reflect(L,N));

  vec4 Iamb = gl_FrontLightProduct[0].ambient
  vec4 Idiff = gl_FrontLightProduct[0].diffuse * max(dot(N,L), 0.0);
  vec4 Ispec = gl_FrontLightProduct[0].specular * pow(max(dot(R,E),0.0), gl_FrontMaterial.shininess);
  vec4 Itot = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec;

  vec3 …
Run Code Online (Sandbox Code Playgroud)

graphics geometry angle glsl fresnel

6
推荐指数
2
解决办法
2万
查看次数

逆时针从V1到V2时,如何判断V3是否介于V1和V2之间?

我有三个向量V1,V2和V3.它们的起点是轴的起源.当我从V1逆时针移动到V2时,如何确定V3是否介于V1和V2之间?

alt text http://www.freeimagehosting.net/uploads/1448ea8896.jpg

无法通过获取角度和评估这些条件(伪代码)来完成:

if angle(V3) > angle(V1) && angle(V3) < angle(V2) 
   printf("V3 is between V1 and V2") 
else 
   printf("out of the interval")
Run Code Online (Sandbox Code Playgroud)

为了看到它的缺陷,假设该angle函数给出了[-pi pi]范围内的角度.因此,如果角度(V1)= 120(度),角度(V2)= -130,角度(V3)= 150,那么答案(根据上面的代码)是"超出间隔",但如果你四处走动逆时针从V1到V2,它们介于它们之间.

您可能建议将2*pi添加到角度(V2)或类似的东西,但我已经尝试过这样的东西而且它不起作用.

我在MATLAB中编程.

编辑1:它是2D.

matlab geometry vector angle

6
推荐指数
1
解决办法
2233
查看次数

2个GPS坐标之间的角度

我正在使用另一个使用AR的iPhone应用程序,我正在创建自己的框架,但是我无法尝试获得相对于当前设备位置的第二个坐标的角度,任何人都知道可以使用的良好资源帮我这个?

提前致谢!

iphone gps angle coordinates augmented-reality

6
推荐指数
1
解决办法
7750
查看次数

在3D中查找X,Y和Z轴的角度 - OpenGL/C++

我目前正在尝试使用OpenGL(使用SDL)将立方体绘制到我在屏幕上单击的位置,然后让它指向我右键单击屏幕中的位置.

我可以使用gluUnproject在我想要的位置成功绘制一个立方体 - 意思是我已经知道我的立方体所在的坐标.

但是我不知道如何计算使我的立方体点在新位置所需的所有角度.

当然我仍然使用gluUnproject来找到我的右键单击的坐标,但我只知道如何使用2D图形围绕Z轴旋转.

例如之前,如果我想围绕Z轴旋转一个四边形(当然,这将是一个自上而下的视图,其中Z轴仍在"穿过"屏幕)在2D中,我会做类似的事情:

angle = atan2(mouseCoordsY - quadPosY, mouseCoordsX - quadPosX);
glRotatef(angle*180/PI, 0, 0, 1);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我将如何在3D中进行此操作?

  • 我是否需要像上面那样计算每个轴的角度?
  • 如果是这样,我如何计算绕X轴和Y轴旋转的角度?
  • 如果没有,我应该用什么方法来达到我想要的效果?

任何帮助是极大的赞赏.

c++ opengl 3d angle rotation

6
推荐指数
1
解决办法
3863
查看次数

具有指定角度的OpenCV RotatedRect

我的情况是我有一个小的二进制图像,有一个形状,我想要找到最合适的旋转矩形(不是边界矩形).我知道有cv :: minAreaRect()你应用于cv :: findContours()找到的结果,但这在我的情况下导致了不好的结果,因为数据很吵(来自MS Kinect,见示例图片噪音敏感度由于输入数据(轮廓)略有不同而导致旋转发生变化的情况.我所做的是在我的二进制图像上使用PCA计算主轴(对噪声不太敏感),产生角度"a",现在我想创建一个RotatedRect围绕我的形状,给定主轴的角度,a).

我有一个插图,用我精湛的Paint技能制作! 插图

那么我的问题是:你们有代码片段或具体的建议来解决这个问题吗?我担心我必须做很多Bresenham迭代,希望有一个聪明的方法.

顺便说一句,对于那些不太熟悉openCV的RotatedRect数据结构的人:它由高度,宽度,角度和中心点定义,假设中心点实际上是在矩形的中心.

干杯!

opencv angle

6
推荐指数
2
解决办法
9832
查看次数

两个3D矢量之间的X角?

我有两个叫做A和B的3D矢量,它们都只有一个3D位置.我知道如何通过以下方式找到沿着单位圆的角度(0-360度)和atan2函数:

编辑:(我的atan2函数没有意义,现在它应该找到2个向量之间的"y角度"):

toDegrees(atan2(A.x-B.x,A.z-B.z))+180
Run Code Online (Sandbox Code Playgroud)

但是这给了我两个向量之间的Y角.我需要找到它们之间的X角.它与使用x,y和z位置值有关.不仅仅是x和z,因为它给出了两个向量之间的Y角.我需要X角,我知道它听起来很模糊,但我不知道如何解释.例如,如果你向上或向下看而不是旋转x轴,你可能在3D空间中有一个摄像头.但是现在我需要获得2个向量之间的"上/下"角度.如果我沿y轴旋转3D相机,则x轴不会改变.因此,与2个载体,不管是什么"Y-角"是他们之间,2个向量之间的x角度西港岛线留如果y角变化,同样因为它的"向上/向下"的角度,像在卡马拉.

请帮忙?我只需要一行数学/伪代码或解释.:)

geometry space vector angle coordinates

6
推荐指数
2
解决办法
1万
查看次数

如何在R中的圆形图上更改轴标签方向

我有一些角度数据(上的标度- 360°).我已经使用'圆形'包装成功地创建了一个圆形图R,但轴标签是逆时针方向读取的,而不是顺时针方向.

我需要纠正这个问题,因为数据和轴标签目前不匹配.标签应从- 345°顺时针方向运行.

这是R我用来创建绘图的代码:

library(circular)
# Create circular object / Sample Data
df <- structure(c(345, 355, 351, 359, 358, 359, 359, 357, 352, 3, 6, 
4, 342, 336, 349, 352, 340, 354, 335, 348, 355, 353, 354, 346, 
351, 359, 358, 357, 348, 336, 349, 351, 355, 354, 356), .Dim = c(35L, 
1L), .Dimnames = list(NULL, "Bearing"), circularp = structure(list(
type = "angles", units = "degrees", template = …
Run Code Online (Sandbox Code Playgroud)

plot r angle

6
推荐指数
1
解决办法
1034
查看次数

如何计算R中U和V风分量的风向

我有U和V风分量数据,我想从R中的这些值计算风向.

我希望得到0-360度的风向数据,0°或360°表示向北吹来的风,90°表示向东吹来的风,180°表示吹到的风南面和270°表示向西吹来的风.

以下是一些示例数据:

> dput(wind)
structure(list(u_ms = c(-3.711, -2.2417, -1.8188, -1.6164, -1.3941, 
-1.0682, -0.57611, -1.5698, -1.4976, -1.3537, -1.0901, -0.60403, 
-0.70812, -0.49045, -0.39849, 0.17875, 0.48356, 1.5082, 1.4219, 
2.5881), v_ms = c(-1.471, -1.6118, -1.6613, -1.7037, -1.7388, 
-1.8748, -1.8359, -1.6766, -1.6994, -1.7505, -1.4947, -0.96283, 
-1.1194, -0.6849, -0.7847, -0.80349, -0.19352, -0.97815, -1.0835, 
-0.81666), u_rad = c(-0.064769155, -0.039125038, -0.031744042, 
-0.028211496, -0.02433163, -0.018643603, -0.010055014, -0.027398173, 
-0.026138045, -0.023626517, -0.01902583, -0.01054231, -0.012359023, 
-0.008559966, -0.006954961, 0.003119775, 0.008439712, 0.02632305, 
0.024816831, 0.045170857), v_rad = c(-0.025673788, -0.028131211, 
-0.028995149, -0.029735168, -0.030347779, -0.032721426, -0.032042493, …
Run Code Online (Sandbox Code Playgroud)

pi r angle atan2

6
推荐指数
3
解决办法
3万
查看次数

计算给定角度和长度的矢量

有没有办法,在javascript中,我可以调用一个具有x和y co-ord的函数和一个方向(角度,以度为单位),它将返回一组已被'移动'10px的新协作从原始合作方向给出的方向?我环顾四周,但我能找到的只是获得两个角度的方法.

对不起,如果措辞严厉的话.

javascript angle

6
推荐指数
1
解决办法
4275
查看次数

Arrow rotating to face cursor needs to only do so while inside an angle made by two given directions

I have a 2d arrow rotating to always face the a target (the target in this case is the cursor), the pivot is my player character. I need to restrict this arrow to only follow the target if it is inside an angle of the player, an example would be 90 degrees, so it would only follow if the cursor is in the top right part of the screen.

I have worked with vector directions and methods such as Vector2D.angle, …

c# angle unity-game-engine

6
推荐指数
1
解决办法
74
查看次数