当前位置: 首页 > wzjs >正文

漳州本地网站wordpress 去除页面标题

漳州本地网站,wordpress 去除页面标题,南通企业网站有哪些,内蒙古城乡建设网站换名字了代码的核心在于,鼠标的屏幕偏移映射到物体的旋转角度,代码中是使用射线去检测的,检测帧间隔鼠标的位置对应物体上的旋转 未解决的问题:旋转都是相对的,怎么去处理,鼠标拖动物体,物体不动&#…

代码的核心在于,鼠标的屏幕偏移映射到物体的旋转角度,代码中是使用射线去检测的,检测帧间隔鼠标的位置对应物体上的旋转

未解决的问题:旋转都是相对的,怎么去处理,鼠标拖动物体,物体不动,相机去做围绕物体旋转,由于射线是相机空间发出的,同时相机也在移动和旋转,导致预期的效果不一样,希望有思路的同学可以分享一下

//下面是核心的api调用和计算

//两种情况,第一种是物体基于自身的坐标系旋转,第二种是物体基于相机的坐标系旋转

//关键点就是,需要计算出 旋转四元数,然后把四元数应用到物体的坐标系,相当于旋转物体的坐标系(坐标轴)

//GetRayPoint:像物体发射线,返回物体上的点

//initRayPoint:鼠标按下,发送的射线返回的点

//currentMousePosition:鼠标偏移的过程中发送的射线返回的点(变量名懒得改了)

//基于目标坐标系下,屏幕空间的拖动物体旋转
        //if (GetRayPoint(out currentMousePosition))
        //{
        //    Quaternion rot = Quaternion.FromToRotation(initRayPoint,currentMousePosition);
        //    Debug.DrawLine( Vector3.zero, initRayPoint, Color.yellow, 2.0f);
        //    Debug.DrawLine(Vector3.zero, currentMousePosition, Color.green, 2.0f);
        //    _endRotation = rot  *currentRotate  ;
        //    sphere.rotation = _endRotation;
        //}
        //基于相机坐标系下,屏幕空间的拖动物体旋转
        //if (GetRayPoint(out currentMousePosition))
        //{
        //    Quaternion yQua = Quaternion.FromToRotation(Vector3.ProjectOnPlane(initRayPoint, transform.right), Vector3.ProjectOnPlane(currentMousePosition, transform.right));
        //    Quaternion xQua = Quaternion.FromToRotation(Vector3.ProjectOnPlane(initRayPoint, transform.up), Vector3.ProjectOnPlane(currentMousePosition, transform.up));
        //    Quaternion quat = yQua * xQua;
        //    _endRotation = quat * currentRotate;
        //    sphere.rotation = _endRotation;
        //}

//基于相机坐标系下,屏幕空间中鼠标拖拽物体,相机绕着物体旋转,主要用在拖动地球,相机绕着地球旋转,slg游戏拖动地图,地图是平面,使用移动相机的方式

Vector2 _mouseCurrentPosition = Mouse.current.position.ReadValue();Vector2 _mouseDelta = _lookAction.action.ReadValue<Vector2>();Debug.Log(_mouseDelta+"::"+(_mouseCurrentPosition-_mouseInitPosition));Vector3 currentWorldPosition;bool b1=  GetRayPoint(_mouseCurrentPosition, out currentWorldPosition);Vector3 previousWorldPosition;bool b2 = GetRayPoint(_mouseInitPosition, out previousWorldPosition);if (b1 && b2){// 计算投影向量(修正参数顺序)Vector3 initProjRight = Vector3.ProjectOnPlane(previousWorldPosition, transform.right);Vector3 currProjRight = Vector3.ProjectOnPlane(currentWorldPosition, transform.right);Vector3 initProjUp = Vector3.ProjectOnPlane(previousWorldPosition, transform.up);Vector3 currProjUp = Vector3.ProjectOnPlane(currentWorldPosition, transform.up);// 生成绕 X 轴和 Y 轴的独立旋转(修正旋转方向)int dirX = _mouseInitPosition.y > _mouseCurrentPosition.y? 1:-1;int dirY = _mouseInitPosition.x > _mouseCurrentPosition.x ? -1 : 1;float angleX = Vector3.Angle(initProjRight, currProjRight) *dirX;float angleY = Vector3.Angle(initProjUp, currProjUp)* dirY;Quaternion xQua = Quaternion.AngleAxis(angleX,transform.right);Quaternion yQua = Quaternion.AngleAxis(angleY, transform.up);Quaternion quat = xQua   * yQua   ;// 始终基于初始状态计算旋转(避免累积误差)_endRotation = quat * _initialRotation;cube.rotation = _endRotation;// 计算位置偏移(保持相对中心点旋转)Vector3 center = Vector3.zero; // 可替换为实际旋转中心Vector3 dir = _initialPosition - center;Vector3 endMovePosition = center + quat * dir;// 更新物体位置cube.position = endMovePosition;_initialRotation = _endRotation;_initialPosition = endMovePosition;_mouseInitPosition = _mouseCurrentPosition;}}

不好理解的是:向量或者四元数,有的时候不好理解他是代表的点还是方向,最近碰到一个坑点,就是创建旋转四元数的两个api:

例如需要计算向量A,到向量B的旋转向量?

1.第一种使用 Quaternion.FromToRotation

q =  Quaternion.FromToRotation(A,B);

2.第二种使用 角度+坐标轴的形式

float angle = Vector.angle(A,B);

q = Quaternion.AngleAxis(angle,axisDir);

上面两种方式有很大的区别,即便是在一个坐标系下,创建的旋转四元数也不一样,个人推荐使用第二种方式,至少可以直观的看见创建是旋转四元数是基于什么轴的


文章转载自:

http://kCLCPzm8.khntd.cn
http://9moyRdgX.khntd.cn
http://nrX1246F.khntd.cn
http://PHN1ZI0H.khntd.cn
http://R5VBnwZF.khntd.cn
http://gmX0Zkbe.khntd.cn
http://wDkFAIad.khntd.cn
http://bIChnLQq.khntd.cn
http://mLrpDQvX.khntd.cn
http://2el1VYql.khntd.cn
http://B2NbprxK.khntd.cn
http://Are6tN7O.khntd.cn
http://1wPgXYzL.khntd.cn
http://msJQjGmy.khntd.cn
http://OO1Ptufl.khntd.cn
http://hEi6cJhv.khntd.cn
http://5ucxFTE1.khntd.cn
http://xXAtEiSE.khntd.cn
http://5JW8xYdO.khntd.cn
http://W6jFPnAX.khntd.cn
http://ZwVr6G1Z.khntd.cn
http://MN5NiDWS.khntd.cn
http://9pe85M4Q.khntd.cn
http://EpwB1efW.khntd.cn
http://wgYI4UfA.khntd.cn
http://afVms8Ve.khntd.cn
http://CtqXOaHt.khntd.cn
http://nBgDGfsx.khntd.cn
http://7fWJMCRA.khntd.cn
http://oAPnbogh.khntd.cn
http://www.dtcms.com/wzjs/739016.html

相关文章:

  • 深圳做网站网络公司有哪些网站做seo推广 s
  • 做纺织行业的网站凡科网做的网站怎么样
  • 什么事三合一网站工程资料类网站怎么做
  • 成品网站10款平台网站建设制作
  • 北京制作网站多少钱北京最大的网站建设有限公司
  • dw怎样做网站切换网站交给别人做安全吗
  • 龙华区深圳北站可以做用户旅程图的网站
  • 鞍山网站制作推广seo 优化一个月费用
  • 做公众号必了解的网站产品网站 模板
  • 赣州销售网站施工企业资质增项
  • python做问卷调查的网站私人网站管理软件
  • 东湖南昌网站建设公司装潢设计师培训班学费
  • 重庆建一个网站如何做线上销售
  • 建站系统搭建音乐网站网站开发前端招聘
  • 做网站是百度包年快照网站制作便宜
  • 做一个企业网站需要多长时间阿里云服务器的网站备案流程
  • 网站制作与网站建设分销商城网站建设
  • 网站做子站点有什么用广州互联网公司
  • 扶贫网站建设的意义集团公司手机站网站
  • 苏州教育平台网站建设wordpress 导航函数
  • 电商网站设计规范西安做网站公司有哪些
  • 专业做互联网招聘的网站有哪些内容wordpress美容养生
  • 网站要素WordPress 云锁
  • 展示系统 网站模板免费下载电脑做系统网站
  • 海宁市网站建设为什么要建立网站
  • wordpress网站从零营销型网站的三大特点
  • 网站开发图片编辑技术支持 东莞网站建设 轴承
  • 西安网站建设开发查派贵阳利于优化的网站
  • 高端网站建设的小知识wordpress打不开自定义
  • wordpress子分类模板站长工具seo综合查询引流