c# - 如何在 3D 中两点之间的线上找到一些额外的点?
问题描述
C# 中是否有一个函数可以为我提供 3D 中两点之间的直线上的所有点?
为了计算这两点之间的距离,我使用这个:
public class Position {
public float x;
public float y;
public float z;
}
public void CalculateDistance(Position position1, Position position2, int mapId){
float deltaX = position1.x - position2.x;
float deltaY = position1.y - position2.y;
float deltaZ = position1.z - position2.z;
float distance = (float)Math.Sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
Console.WriteLine("Distance is: " + distance);
}
示例坐标:
Position pos1 = new Position();
pos1.x = 141.6586f;
pos1.y = 0.6852107f;
pos1.z = 153.2231f;
Position pos2 = new Position();
pos2.x = 142.336f;
pos2.y = 0.8685942f;
pos2.z = 130.8394f;
假设这两个 3d 坐标之间的直线距离可以传递 5 秒。如何每 1 秒打印一次当前坐标?
解决方案
这个答案很好地描述了你想要做的事情
这是如何打印值的代码示例:
var mx = pos2.x - pos1.x;
var my = pos2.y - pos1.y;
var mz = pos2.z - pos1.z;
for(var t=0; t < 10; t++) {
var x = pos1.x + mx * t;
var y = pos1.y + my * t;
var z = pos1.z + mz * t;
//TODO: use you 3D point
}
希望这可以帮助!
推荐阅读
- reactjs - 布尔值不是反应本机提取函数中的函数
- neo4j - Cypher 查询以查找连接的聚合总和
- elasticsearch - 在无痛脚本的 Array contains 方法的引擎盖下,painless 到底做了什么
- single-page-application - 使用 Web API 和 SPA 为 Identity Server 设置数据库
- twitter-bootstrap - 如何在 bootstrap v4 中为标题设置不同的字体粗细
- node.js - NodeJS 无法正确安装
- c++ - 在 malloc 之后和调用 free() 之前检查
- excel - 为什么 DateDiff 返回日期而不是分钟数?
- ios - ios 13 Urban Airship后台推送失败
- android - Kotlin 片段重叠问题