获得两点之间连续坐标,向量加法减法乘法的运用
Posted dj1232090
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获得两点之间连续坐标,向量加法减法乘法的运用相关的知识,希望对你有一定的参考价值。
这是一个很小的知识点,不过我觉得可以记录下来,就算是在大都项目都是这些小小的知识点堆积而来,之前我用这个小知识点获取了,两点之间都一系列点,今天当我想做一个移动的时候,发现这个知识点也能做这方面都事情,所以我觉得把它记录下来,虽然很简单,但是用处并不简单。
using UnityEngine; using System.Collections; /// <summary> /// 下面这个类是将一个transfrom对象移动到目标点(100,0,100)位置 /// 主要的方法GetBetweenPoint,能够获取起始点和终点之间都由起始点朝向终点都distance距离点 /// </summary> public class Main : MonoBehaviour { private Vector3 target = new Vector3(100, 0, 100); private int count = 0; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Vector3.Distance(transform.position, target) > 0.1f) { transform.position = GetBetweenPoint(transform.position, target, 0.1f); } else { transform.position = target; } } /// <summary> /// 获取两点之间的一个点,在方法中进行了向量的减法,以及乘法运算 /// </summary> /// <param name="start">起始点</param> /// <param name="end">结束点</param> /// <param name="distance">距离</param> /// <returns></returns> private Vector3 GetBetweenPoint(Vector3 start, Vector3 end, float distance) { Vector3 normal = (end - start).normalized; return normal * distance + start; } }
using UnityEngine; using System.Collections; /// <summary> /// 这个类和上面都类功能是相同都,都是从当前坐标移动到目标坐标点,只是向量的计算方式不一样,这种方式是向量的加法运算 /// </summary> public class Main : MonoBehaviour { private Vector3 target = new Vector3(100,0,100); private Vector3 normal; // Use this for initialization void Start () { //向量的减法运算 normal = (target - transform.position).normalized; } // Update is called once per frame void Update () { if (Vector3.Distance(transform.position, target) > 0.1) { //向量的加法运算 transform.position = transform.position + normal * 0.1f; } else { transform.position = target; } } }
来源:http://blog.gamerisker.com/archives/496.html
以上是关于获得两点之间连续坐标,向量加法减法乘法的运用的主要内容,如果未能解决你的问题,请参考以下文章