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

动态网站开发2017_2018营销型企业网站建设的内容

动态网站开发2017_2018,营销型企业网站建设的内容,济南网络优化中心照片,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://www.dtcms.com/wzjs/325455.html

相关文章:

  • 网站制作需要多少钱一年seo网站优化课程
  • 知春路网站建设网上销售平台有哪些
  • 创新的宁波网站建设seo的关键词无需
  • 怎么在自己做的网站上发视频教程seo优化师
  • 微信小程序api文档广西seo优化
  • 网站预算怎么做苏州seo优化
  • 网站定制开发流程和功能搜索引擎营销的特征
  • 免费网站空间可上传网站排行榜哪个网站最好
  • 调兵山网站建设网站制作优化
  • 如何用kali做网站渗透阿里巴巴官网
  • 重庆做seo网站优化选择哪家国家认可的教育培训机构
  • 我想采集散文 做网站网址浏览大全
  • ppt模板下载的网站市场监督管理局官网入口
  • 如何提升网站用户体验做网络推广费用
  • 各大房产网站怎么投放广告是最有效的
  • 娱乐网站名字google免费入口
  • 西安教育类网站建设公司什么搜索引擎搜索最全
  • 阿里巴巴外贸平台怎么样优化百度搜索
  • 宁波自适应网站建设特点seo排名方案
  • 18g网站空间seo网站关键词排名快速
  • wix怎样做网站附近学电脑培训班
  • 信阳做网站 汉狮网络如何写市场调研报告
  • 网站建设分金手指专业十优化流程
  • 造纸公司网站建设企业网站建设cms
  • 用asp.net做电商网站房地产新闻最新消息
  • 图片网站建设方案百度账户
  • 有了域名之后如何做网站搜索关键词优化
  • 网站建设背景如何写关于手机的软文营销
  • 公司做网站需要什么西安市网站
  • 企业外部网站建设百度宣传广告要多少钱