You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已知起点Vec2、角度和距离,如何计算终点坐标?

解决根据起点、角度和距离计算终点坐标的问题

别发愁,这个问题其实用基础的三角函数就能搞定,我来给你一步步拆解:

核心计算公式

从起点出发,沿着指定角度移动固定距离后的终点坐标,本质是利用三角函数计算直角三角形的两个直角边长度,再叠加到起点坐标上:

  • 终点X坐标 = 起点X + 距离 × cos(角度的弧度值)
  • 终点Y坐标 = 起点Y + 距离 × sin(角度的弧度值)

注意:大多数编程语言的三角函数(比如cos()、sin())都是基于弧度计算的,所以第一步需要把你给出的64度转换成弧度。

具体代码实现

结合你给出的参数,这里用适配Vec2结构的代码示例(以C++风格为例):

#include <cmath> // 必须包含标准数学库

Vec2 start = Vec2(20, 20);
float angle = 64.0f; // 你的角度是64度
float distance = 500.0f;

// 把角度从度转换为弧度
float angle_rad = angle * M_PI / 180.0f;

// 计算终点坐标
float end_x = start.x + distance * cos(angle_rad);
float end_y = start.y + distance * sin(angle_rad);

Vec2 end = Vec2(end_x, end_y);

关键注意事项

  • 坐标系方向:如果你的项目里Y轴是向下的(比如很多2D游戏引擎的默认设置),那么Y坐标的计算需要调整符号,改成start.y - distance * sin(angle_rad),否则终点会和预期方向相反。
  • M_PI的定义:有些编译环境可能没有默认定义M_PI,如果遇到编译错误,可以手动添加:#define M_PI 3.14159265358979323846f
  • 精度匹配:如果用float类型,建议使用cosf()和sinf()(单精度版本)来匹配类型,避免不必要的类型转换。

内容的提问来源于stack exchange,提问作者Kad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:18:10