网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月14日漏签0天
javascript吧 关注:269,281贴子:906,468
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 8回复贴,共1页
<<返回javascript吧
>0< 加载中...

請問如何將點與點之間換算角度(或徑度)

  • 只看楼主
  • 收藏

  • 回复
  • 銀色丨羽翼
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我目前在做一個東西
他是朝著一個物體發射弓箭
如果設那個射弓箭的東西為原點(0,0)
那物體是在任意的座標
請問如何寫才能把正確的角度求出來
x.y軸的角度都要求...
目前我有試著寫過
用acos atan atan2 asin 用出來都很奇怪
換算出來的徑度用動態顯示是會亂跳的(但目標並沒有改變座標)
爾且只有一個90度的範圍內才是正常射出弓箭..


  • mypcluna
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
天,您和羊神儿是老乡吗?
有几处我没看懂(和正体字无关),您是做2D游戏?那么视角是俯视(类似口袋妖怪)还是侧视(类似超级马里奥)?
如果是俯视,这事儿好办,用atan2就能求出弧度(注意Math的方法全都用弧度,而非角度),即正确的发射方向与X轴正向夹角,逆时针为正,结果∈(-π, +π]。
如果是侧视,并要加入一些物理效果(重力、风力),稍微难点。
另外您说的径度,不知是不是我们这里所谓的弧度。


合肥水花网络科技有限公司
在线编辑Excel表格、WORD文档等,涵盖了多款常用模板,让你随时随地轻轻松松制作表格。简单便捷的操作。
2025-05-14 17:00广告
立即查看
2025-05-14 17:00:55
广告
  • mypcluna
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
3D的话,一般 “地平面” 是OXZ,“高度” 是 Y。
在 Y 轴方向需要考虑重力加速度的影响,不过你说上下转动没问题,那就成在OXZ平面的二维问题了。
设目标的位置P(x, y),那你就
var theta = Math.atan2(P.y, P.x);
得到theta,是个弧度∈(-π, +π],从 +X 轴开始向 +Y 轴转是正方向,你就朝着与 +X 轴夹角为 theta 弧度的方向射箭就可以命中。
你控制旋转是用矩阵?四元数?左手系还是右手系?弓箭发射方向对齐 +Z轴 还是 -Z轴 或者其他哪个轴?
假设是右手系,向 +Z轴 发射,采用矩阵,旋转方法是:
1 初始化矩阵为单位阵
2 绕 Y 轴转 theta 弧度
3 绕 X 轴转垂直方向的弧度(你说没有问题)
现在这个矩阵的第三行或者第三列就是发射方向的向量,到底是行还是列,要看你用的是行向量还是列向量,就是说当作向量与矩阵乘法时,你是 向量 * 矩阵,还是 矩阵 * 向量,前者是行向量,后者是列向量,行向量就用第三行,列向量就用第三列。


  • fggcffgvxyvcd
  • var
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好高端
http://v.youku.com/v_show/id_XMTQ0NTQ4NDM4MA==.html?x&sharefrom=android
不是所有手机都可以复制的
☁️☁️🌞   ☁   ☁
   ☁ ✈   ☁  🚁
 🏬🏨🏫🏢🏤🏥🏦🏪
👬🌲 / 🚶 l🚍 \🌳👫👫
 🌳/ 🚘 l 🏃 \🌴🐈
🌴 /  🐢 l 🚔 \🌲👯👯
🌲 /🚖   l    \🌳👭
   --来自max客户端


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回javascript吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示