正切

正弦函数 sinθ=y/r
余弦函数 cosθ=x/r
正切函数 tanθ=y/x
余切函数 cotθ=x/y
正割函数 secθ=r/x
余割函数 cscθ=r/y
 
已知y和x,求角度θ:arctan(y/x),arctan是反正切,tanθ=y/x,θ=arctan(y/x)。
UE4提供有arctan反正切等常用数学函数。

  

UE4提供了更直接的函数,可以把角度很方便的计算出来。

  1、表示角度有2种方式:Vector、Rotator。Vector本身也是可以表示方向,Vector包含方向和大小。

  2、Vector和Rotator是可以互相转换的。

    

  3、手指在手柄圆盘上的位置就是坐标,可以映射到UE4中坐标,然后调用RotationFromXVector,就可以把手指所在位置直接转换成角度。

  4、分析手柄原本坐标与UE4坐标的对应关系。视角的方向正好是X轴,横轴是Y轴;

     

  5、可以通过MotionController thumbstick X和MotionController thumbstick Y事件得到手指在手柄圆盘上的位置。thumbstick X和thumbstick Y事件是每一帧都会被调用,如果手指没有触摸手柄圆盘,则Axis Value的值为0。

    

  6、UE4提供了2个函数可以更直接地获得手指在手柄圆盘上的位置:Get MotionController Thumbstick X、Get MotionController Thumbstick Y

    

  7、SetWorldrotation和SetRelativeRotation。我们拿着手柄的时候,大拇指停留在手柄圆盘的右上角,箭头朝向就应该是相对于手柄右上角,手拿着手柄转动的时候,但是大拇指相对于手柄圆盘的位置是不变的,

    箭头相对于手柄的朝向是发生变化的,箭头的绝对朝向和绝对位置都是发生变化的,但是相对于手柄圆盘的朝向和位置是不变的。

    箭头的朝向是相对于手柄朝向的。因此我们要使用相对Rotation来设置,也就是SetRelativeRotation。

    

    

    

    

    Arrow应该要放在手柄下面,作为手柄的子节点,因为箭头的朝向是相对于手柄朝向的。

[UE4]计算箭头方向:正切、SetRelativeRotation、RotationFromXVector、Get MotionController Thumbstick X的更多相关文章

  1. [UE4]计算小地图比例尺

    一.调整到顶视图,按住鼠标中键从地图的左边拉一根线到右边,可以看到距离是4000厘米(UE4单位是厘米). 二.查看到缩略图片的长度是512px,512/4000 = 0.128,比例尺是0.128. ...

  2. [UE4]计算两点距离

    (Vector-Vector).VectorLength (Vector_End- Vector_Start ).Normalize,获取从起始位置指向目标位置的单位向量.

  3. [UE4]计算AimOffset偏移动画的角度

  4. [UE4]计算2点坐标附近的坐标:线性插值法

    float distance = FVector::Distance(SelfLocation, TargetLocation); .f / distance; DrawDebugPoint(GetW ...

  5. JAVA Math类

    public class MathTest{ public static void main(String[] args)  {  /*---------下面是三角运算---------*/  //将 ...

  6. Java基础知识强化79:被遗忘的Java Math类

    1. Math类概述 Math类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 2. 成员变量 和 成员方法(常用的) (1)成员变量 public static final d ...

  7. CG 标准函数库

    (1)数学函数 函数 功能描述 abs(x) 返回输入参数的绝对值 acos(x) 反余切函数,输入参数范围为[-1,1], 返回[0,π]区间的角度值 all(x) 如果输入参数均不为0,则返回tu ...

  8. java.math.*;(一)

    package com.test; /* Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(Bi ...

  9. 【Java】-NO.16.EBook.4.Java.1.007-【疯狂Java讲义第3版 李刚】- Java基础类

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.007-[疯狂Java讲义第3版 李刚]-  Java基础类 Style:EBook Series:J ...

随机推荐

  1. Linux 驱动——Button驱动6(mutex、NBLOCK、O_NONBLOCK)互斥信号量、阻塞、非阻塞

    button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...

  2. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  3. python第一条代码

    #!usr/bin/env python #-*-coding:utf-8 -*- print("hello,world")

  4. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  5. C语言权威指南和书单 - 专家级别

    注: 点击标题即可下载 1. Advanced Programming in the UNIX Environment, 3rd Edition 2. Essential C 3. Computer ...

  6. Simple circos code

    According to the tutorials (http://circos.ca/documentation/tutorials/), to draw a graph using circos ...

  7. md5Util

    package com.rscode.credits.util; /** * MD5加密类 * @author 12 */ import java.security.MessageDigest; pu ...

  8. leetcode 刷题(3)--- 无重复字符的最长子串

    给定一个字符串,找出不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 ...

  9. html中头meta信息

    一.页面关键字 网站关键字:用户通过搜索引擎能搜到该网站的词汇.最好控制在10个以内. 基本语法: <meta name="keywords" content="具 ...

  10. 第3章 Data语意学

    在C++中经常会遇到一个类的大小问题,关于一个类的大小一般受到三个方面的影响. 语言本身所造成的额外负担,如在虚拟继承中会遇到如派生类中会包含一个指针指向base class subobjec,这样会 ...