osg画线_在OpenSceneGraph中绘制OpenCascade的曲面

在OpenSceneGraph中绘制OpenCascade的曲面

Draw OpenCascade Geometry Surfaces in OpenSceneGraph

摘要Abstract:本文对OpenCascade中的几何曲面数据进行简要说明,并结合OpenSceneGraph将这些曲面显示。

关键字Key Words:OpenCascade、OpenSceneGraph、Geometry Surface、NURBS

一、引言 Introduction

《BRep Format Description White Paper》中对OpenCascade的几何数据结构进行了详细说明。BRep文件中用到的曲面总共有11种:

1.Plane 平面;

2.Cylinder 圆柱面;

3.Cone 圆锥面;

4.Sphere 球面;

5.Torus 圆环面;

6.Linear Extrusion 线性拉伸面;

7.Revolution Surface 旋转曲面;

8.Bezier Surface 贝塞尔面;

9.B-Spline Surface B样条曲面;

10.Rectangle Trim Surface 矩形裁剪曲面;

11.Offset Surface 偏移曲面;

曲面的几何数据类都有一个共同的基类Geom_Surface,类图如下所示:

Figure 1.1 Geometry Surface class diagram

抽象基类Geom_Surface有几个纯虚函数Bounds()、Value()等,可用来计算曲面上的点。类图如下所示:

Figure 1.2 Geom_Surface class diagram

与另一几何内核sgCore中的几何的概念一致,几何(geometry)是用参数方程对曲线曲面精确表示的。

每种曲面都对纯虚函数进行实现,使计算曲面上点的方式统一。

曲线C(u)是单参数的矢值函数,它是由直线段到三维欧几里得空间的映射。曲面是关于两个参数u和v的矢值函数,它表示由uv平面上的二维区域R到三维欧几里得空间的映射。把曲面表示成双参数的形式为:

它的参数方程为:

u,v参数形成了一个参数平面,参数的变化区间在参数平面上构成一个矩形区域。正常情况下,参数域内的点(u,v)与曲面上的点r(u,v)是一一对应的映射关系。

给定一个具体的曲面方程,称之为给定了一个曲面的参数化。它既决定了所表示的曲面的形状,也决定了该曲面上的点与其参数域内的点的一种对应关系。同样地,曲面的参数化不是唯一的。

曲面双参数u,v的变化范围往往取为单位正方形,即u∈[0,1],v∈[0,1]。这样讨论曲面方程时,即简单、方便,又不失一般性。

二、程序示例 Code Example

使用函数Value(u, v)根据参数计算出曲面上的点,将点分u,v方向连成线,可以绘制出曲面的线框模型。程序如下所示:

1 /*2 *    Copyright (c) 2013 eryar All Rights Reserved.3 *4 *        File   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值