各位老大,如何把屏幕大坐标转换小坐标成游戏的坐标

后使用快捷导航没有帐号?
 论坛入口:
  |   |    |   | 
我要游戏程序
查看: 7472|回复: 9
如何从世界坐标转换到屏幕坐标?
我想让角色头上定这个血条,血条直接用xyzrhw 屏幕坐标画。
已经得到了 worldViewProj矩阵。
& && && && && && && &//得到世界坐标为g_vec0的投影坐标。
& & & & & & & & g_vecshow.x = g_vec0.x * worldViewProj._11
& & & & & & & & & & & && &&&+g_vec0.y * worldViewProj._21
& & & & & & & & & & & && &&&+g_vec0.z * worldViewProj._31
& & & & & & & && && && && && & +g_vec0.w * worldViewProj._41;
& & & & & & & & g_vecshow.y = g_vec0.x * worldViewProj._12
& & & & & & & & & & & && & +g_vec0.y * worldViewProj._22
& & & & & & & & & & & && &&&+g_vec0.z * worldViewProj._32
& & & & & & & & & & & && &&&+g_vec0.w * worldViewProj._42;
& && && && && && && &//从投影坐标转换成屏幕坐标
& & & & & & & & g_vecshow.x = ( 1.f+g_vecshow.x)* SCREENWIDTH/2;
& & & & & & & & g_vecshow.y = ( 1.f-g_vecshow.y)* SCREENHEIGHT/2;
但是最终得到的屏幕坐标不对的,我想了好久不知道为什么,也不知道那里错了。请教大家了。。。
Re:如何从世界坐标转换到屏幕坐标?
我在想角色头上的血条是用xyzrhw画的吗?(猜的)
Re:如何从世界坐标转换到屏幕坐标?
是的,打算这么干,而不用公告板。
Re:如何从世界坐标转换到屏幕坐标?
要理解 xyzrhw 坐标系统是什么。
Re:如何从世界坐标转换到屏幕坐标?
&要理解 xyzrhw 坐标系统是什么。&
就是是屏幕坐标,无须再做world view project 变换。
Re:如何从世界坐标转换到屏幕坐标?
Re: 如何从世界坐标转换到屏幕坐标?
用广告牌方便点
Re:如何从世界坐标转换到屏幕坐标?
void XScreen:rawTextToWorld(PCSTR pMsg, float x, float y, float z,
& & & & & & & & & & & & & & & & & & & &&&int rect_width, int&&rect_height, D3DCOLOR color,
& & & & & & & & & & & & & & & & & & & &&&int topOffset, int leftOffset, int vAlign, int hAlign)
& & & & D3DXVECTOR3 p(0.0f, 0.0f, 0.0f);
& & & & D3DXMATRIX worldM
& & & & D3DXMatrixIdentity(&worldMat);
& & & & worldMat._41 =
& & & & worldMat._42 =
& & & & worldMat._43 =
& & & & D3DXMATRIX viewM
& & & & D3DXMATRIX projectM
& & & & D3DVIEWPORT9 viewPortM
& & & & gd3dDevice-&GetTransform(D3DTS_VIEW, &viewMat);
& & & & gd3dDevice-&GetTransform(D3DTS_PROJECTION, &projectMat);
& & & & gd3dDevice-&GetViewport(&viewPortMat);
& & & & D3DXVECTOR3
& & & & //获取3D空间的P点投影到屏幕上的s点
& & & & D3DXVec3Project(&s, &p,
& & & & & & & & (D3DVIEWPORT9 *)&viewPortMat,
& & & & & & & & (const D3DXMATRIX*)&projectMat,
& & & & & & & & (const D3DXMATRIX*)&viewMat,
& & & & & & & & (const D3DXMATRIX*)&worldMat);
& & & & //printf(&%s&&%f %f %f \r\n&, pMsg, s.y, s.x, s.z);
& & & & if(s.z&0 && s.z &= 1.0f) //如果在可见范围只外投影的值和原点的z距离会大于1.0f
& & & & DrawText(pMsg, (int)s.y, (int)s.x, rect_width, rect_height, color,topOffset,leftOffset,&&vAlign, hAlign);
这是我以前写的一个方法,对lz应该有用,画图写字都没问题,原理一样,关键是计算投影坐标
Re:如何从世界坐标转换到屏幕坐标?
(视口变换·投影变换·观察变换)-1
由于向量的行列性导致变换矩阵的相乘顺序不同一。
故抽象地用变换来表示。
Re:如何从世界坐标转换到屏幕坐标?
世界坐标-&相机坐标-&透视坐标-&屏幕坐标更多内容,请访问 http://dingxiaowei.cn
[unity3d]屏幕坐标跟世界坐标的转换
keep study very day!写写今天的学习收获,今天学习到了平面坐标跟世界坐标的相互转换。
效果:点击鼠标中键,创建一个小球,虽然看起来是屏面的,但实则是在三维空间里面创建的哦!
代码挂在摄像机上:
using UnityE
using System.C
public class cameramove : MonoBehaviour
private Vector3
private float speed = 0;//物体移动的速度
// Use this for initialization
void Start()
world.x = -2;
world.y = 0;
world.z = 6;
// Update is called once per frame
void Update()
Vector2 screenpos = Camera.main.WorldToScreenPoint(transform.position);//物体的世界坐标转化成屏幕坐标
Vector3 e = Input.mouseP//鼠标的位置
//当点击鼠标中键时
if (Input.GetMouseButtonDown(2))
//e.z=screenpos.z;//1.因为鼠标的屏幕 Z 坐标的默认值是0,所以需要一个z坐标
//e.z=1;//将鼠标
//摄像机要垂直于x-z平面
//world=Camera.main.ScreenToWorldPoint(e);
world = new Vector3(Input.mousePosition.x/Screen.width,Input.mousePosition.y/Screen.height,106f );
Vector3 world1= Camera.main.ViewportToWorldPoint(new Vector3(world.x, world.y, 106f));
//world.x = Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
//world.z = Camera.main.ScreenToWorldPoint(Input.mousePosition).y;
//world.y = transform.position.y;
print("new x:" + world.x);
print("new y:" + world.y);
print("new z:" + world.z);
//创建物体
//GameObject goNew = GameObject.CreatePrimitive(PrimitiveType.Sphere);
//goNew.transform.position = world1;
transform.LookAt(world1);
==================== 迂者 丁小未 CSDN博客专栏=================
Unity QQ群:858550
cocos2dx QQ群:
====================== 相互学习,共同进步 ===================
转载请注明出处:4498293
欢迎关注我的微博:
没有更多推荐了,怎么转换坐标,请教一下各位老大,拜托了。【测绘吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:34,121贴子:
怎么转换坐标,请教一下各位老大,拜托了。收藏
大家好,我想问下西安80
1.5度带怎么转换为西安80
3度带的坐标。拜托了老大,谢谢各位,
测绘公司江苏国衡测绘,CMA认证单位,开展工程测量;不动产测量;地理信息系统;管道检测;测量团队实力强大,可承接全国各地测绘业务.
加我微信LWL-550,坐标换带,给你发软件
换带计算可以通过软件来实现,cgo软件可以
登录百度帐号扫一扫,随时随地挑选人才和公司
全球知识工作者一站式工作平台
随时掌握一手咨询
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金
D3D世界坐标和屏幕坐标的转换
D3D世界坐标和屏幕坐标的转换
雇主预算:¥300.00
已收到 1 个服务商的文案稿件
有相似问题想解决?专业顾问来帮助您
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
该需求下的优秀交稿
交易成功的需求
其它工具软件相关需求}

我要回帖

更多关于 坐标转换软件哪个好 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信