[HOOPS]二维点向三维空间投影
[HOOPS]二维点向三维空间投影
Tag: hoops
当鼠标移动的时候,产生的是屏幕坐标的变化。
若是要使得三维空间选中的某个体/面/线也随着移动,就需要将二维点向三维空间投影。
投影时候需要被投向的面的信息:点+面法线
获取具体如下:
HPoint _Compute_Proj_Point(const SPAposition& plane_pt,
const SPAunit_vector& plane_v,HEventInfo& event)
{
HC_KEY key = event.GetView()->GetSceneKey();
HPoint new_pos = event.GetMouseWorldPos();
float x,y,z;
float tx,ty,tz;
HC_Open_Segment_By_Key(key);
{
HC_Show_Net_Camera_Position(&x,&y,&z);
HC_Show_Net_Camera_Target(&tx,&ty,&tz);
}
HC_Close_Segment();
【[HOOPS]二维点向三维空间投影】//获取camera的方向 ,即射线的方向
SPAposition line_point(new_pos.x,new_pos.y,new_pos.z);
SPAvectorline_vector(tx-x,ty-y,tz-z);
SPAposition intersect;
double line_param;
HPoint result(0,0,0);
//线面交点
if (intersect_line_plane(line_point,line_vector,plane_pt,plane_v,
line_param,intersect)==1)
{
result.x = (float)intersect.x();
result.y = (float)intersect.y();
result.z = (float)intersect.z();
}
return result;
}
推荐阅读
- 《跨界歌手》:亲情永远比爱情更有泪点
- 如何寻找情感问答App的分析切入点
- 小学英语必考的10个知识点归纳,复习必备!
- Java|Java OpenCV图像处理之SIFT角点检测详解
- C语言浮点函数中的modf和fmod详解
- 山香|山香 善思 智学访谈
- 单点登陆
- 焦点学习田源分享第267天《来访》
- 请给时间一点时间
- 关于自我为中心的一点感想