我用vc画了几何图形,也画了立体的图形。如何确定这个目标?

ruan1978 2020-07-17 05:55:54
我在用vc,通过基本的点、线、面函数画了基本的图形之后,这些画成的图形是一个几何体。这个几何体的操作,比如说我画了一个矩形框,再画一个圆,如果两个图形线相交,如何确定是组合到一起了?比如这个边界,可以把这两个图形组合到一起。
...全文
1328 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyanbiao_12 2020-12-08
  • 打赏
  • 举报
回复
这个要靠你坚实的数学了,比如两个球是否碰撞,全部依赖数学了,兄弟加油你行的。
sichuanwww 2020-08-04
  • 打赏
  • 举报
回复
矢量图形处理集,参考www.52vr.com
ruan1978 2020-08-03
  • 打赏
  • 举报
回复
引用 4 楼 sichuanwww 的回复:
学习一下OpenGL,可以参考OpenFlight, OSG等
OpenFlight是干嘛得?
sichuanwww 2020-08-02
  • 打赏
  • 举报
回复
学习一下OpenGL,可以参考OpenFlight, OSG等
示申○言舌 2020-07-31
  • 打赏
  • 举报
回复
看你数据结构怎么实现。。一个可行的方法是: ● 设置一个所有图形的基类BaseGraph,所有图形都派生自该类。 ● 建立各种图形的子类,比如直线类、圆弧类; ● 建立特殊的节点:融合节点类,其内部可容纳其他图形类。 ● 用一个容器放置这些节点,在窗口需要重绘时,首先删选在视图内的节点(不可见节点不需要绘制),然后实施重绘。。 伪代码:

public abstract class BaseGraph
{
     public Rectange localRect { get; set; } = Vector2.Zero;  // 相对父节点的坐标
     public Rectangle worldRect       // 视图坐标系坐标
     {
               get{ return LocalRectangleToWorldRectangle( localRect ); }
               set { localRect = WorldRectangleToLocalRectangle( value ); }
     }
     public BaseGrpah Parent {get;set;} = null; // 父节点
     public abstract void OnDraw(); // 绘制
     public Rectangle LocalRectangleToWorldRectangle( Rectangle rc );   // 本地坐标转换为世界坐标
     public Rectangle WorldRectangleToLocalRectangle( Rectangle rc );  //  世界坐标转换为本地坐标
}

public class Line : BaseGraph
{
     public overwrite void OnDraw()
     {
            DrawLine( worldRect.left, worldRect.top, worldRect.right, worldRect.bottom );
     }
}

...................其他节点.............

public class CombinNode: BaseGraph
{
       List<BaseGraph> childrens ;
 
       public void AddChildren( BaseGraph node )
       {
               node.parent = this;
               childrens.add( node );
      }

       public overrite void OnDraw()
       {
             foreach( var node in childrens )
             {
                       node.OnDraw();
             }
       }
}

// ...........................................

ruan1978 2020-07-20
  • 打赏
  • 举报
回复
我的图形是这样的: 通过基本的画图形画了基本几何图形,如果画了两个几何图形,如何组合到一起?
smwhotjay 2020-07-17
  • 打赏
  • 举报
回复
涉及到数学建模了。。 实现一些检测函数。 矩形框,圆,三角形,对象可以相互测试是否相交(碰撞检测),并返回交点/接触面之类。 一般游戏都是简单的包围盒box,和建筑box,人box碰撞。 偷懒可以用下box2d试试。 Box2D是一个用于模拟2D刚体物体的C++引擎。zlib许可是一个自由软件授权协议,但并非copyleft。 例如:写个桌球游戏,用2d物理引擎就可以了。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧