如何用directX实现虚拟穴位(即用鼠标点击,出现模型变红或震动等效果)?
已经弄好了人体模型,请详细讲一下如何导入模型,如何实现在穴位的区域范围内鼠标点击,并且通过右键菜单选择后可以出现变红或震动等三种效果。最好把程序代码写出来,越详细越好!如...
已经弄好了人体模型,请详细讲一下如何导入模型,如何实现在穴位的区域范围内鼠标点击,并且通过右键菜单选择后可以出现变红或震动等三种效果。最好把程序代码写出来,越详细越好!如果能留下qq帮助就最好了。谢谢!
如果成功的话我会再加分。
关键是代码我读不懂啊,我得教程是用的VC6.0和directX9.0,在MFC下做的。但是网上的代码似乎都不是这样,也没说哪段程序应该加紧.cpp哪段加进.h,所以不知该怎么办。
我知道我基础差,所以才来请教。。哪位大师能教教我,真真感激不尽,卡在这地方好久了,过不去。。。。。 展开
如果成功的话我会再加分。
关键是代码我读不懂啊,我得教程是用的VC6.0和directX9.0,在MFC下做的。但是网上的代码似乎都不是这样,也没说哪段程序应该加紧.cpp哪段加进.h,所以不知该怎么办。
我知道我基础差,所以才来请教。。哪位大师能教教我,真真感激不尽,卡在这地方好久了,过不去。。。。。 展开
展开全部
楼上完全反了... 应该是三维转二维
一种方法是直接在当前视平面渲染出一张碰撞信息图,渲染的时候每个顶点的包含的信息不是颜色,而是鼠标点击需要的信息,不要纹理。这种方法的好处是逻辑非常简单,缺点是运算量相对比较大。
另一种是在当前视平面对模型进行投影变换,然后根据x, y值生成四叉树。这种方法优化后运算量小会小很多,缺点是逻辑相应也复杂得多。
基本思路就是这样,没什么特殊情况第一种方法就可以了;另外不要太寄希望于有人会免费给你写,纯从商业角度说这给你这个思路就已经不应该是免费的了。
一种方法是直接在当前视平面渲染出一张碰撞信息图,渲染的时候每个顶点的包含的信息不是颜色,而是鼠标点击需要的信息,不要纹理。这种方法的好处是逻辑非常简单,缺点是运算量相对比较大。
另一种是在当前视平面对模型进行投影变换,然后根据x, y值生成四叉树。这种方法优化后运算量小会小很多,缺点是逻辑相应也复杂得多。
基本思路就是这样,没什么特殊情况第一种方法就可以了;另外不要太寄希望于有人会免费给你写,纯从商业角度说这给你这个思路就已经不应该是免费的了。
展开全部
其实就是鼠标拾取。
先得到鼠标的坐标,然后根据视图矩阵和投影矩阵计算得到在近截面的映射坐标,然后从视点到该坐标生成一条射线,然后去判断该射线与模型上“穴位”坐标的距离,如果足够小,则视为该穴位被选中。然后生成效果即可。
先得到鼠标的坐标,然后根据视图矩阵和投影矩阵计算得到在近截面的映射坐标,然后从视点到该坐标生成一条射线,然后去判断该射线与模型上“穴位”坐标的距离,如果足够小,则视为该穴位被选中。然后生成效果即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
导入模型文件所有的DX教程应该都有的这个就不说了
最主要的是算法
当鼠标点击屏幕时候计算X,Y坐标然后组合世界坐标系坐标转换成三维坐标
然后三维坐标可以得到一个比列X:Y,Y:Z比列确认后就可以延长该坐标
比如X+1,Y该加多少,Z该加多少(所计算的是向量的末端端点,始端端点为(0,0,0)
当取值与模型坐标交错时候会有一个坐标,利用此坐标判断这个坐标在模型上的位置
利用这个位置应该就可以判断出穴位
所涉及的计算量很大,而我数学又不好,所以就把思路告诉你了
qq:1115949781
最主要的是算法
当鼠标点击屏幕时候计算X,Y坐标然后组合世界坐标系坐标转换成三维坐标
然后三维坐标可以得到一个比列X:Y,Y:Z比列确认后就可以延长该坐标
比如X+1,Y该加多少,Z该加多少(所计算的是向量的末端端点,始端端点为(0,0,0)
当取值与模型坐标交错时候会有一个坐标,利用此坐标判断这个坐标在模型上的位置
利用这个位置应该就可以判断出穴位
所涉及的计算量很大,而我数学又不好,所以就把思路告诉你了
qq:1115949781
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果可以的话,发一份原码给我
80676535@163.com
80676535@163.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您基础好像差了点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询