青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE PCurve of Topological Face

Posted on 2015-04-25 12:22 eryar 閱讀(4074) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE PCurve of Topological Face

eryar@163.com

Abstract. OpenCASCADE provides a class BRepBuilderAPI_MakeFace to build topological faces. A face maybe built from a surface, elementary surface from gp package, surface from Geom, from a wire and find the surface automatically if possible, etc. If a face is built, how to check it for visualization? What does PCurve means? The paper will answer those question.

Key Words. OpenCASCADE, Topological Face, PCurve, Holes

1. Introduction

OpenCASCADE中邊界表示法BRep的拓樸面Topological Face包含了完整的幾何信息,即給定一個(gè)TopoDS_Face,其中包含了邊和頂點(diǎn),而邊和頂點(diǎn)包含了幾何曲線及三維點(diǎn)。對(duì)邊和頂點(diǎn)的可視化很好理解:顯示頂點(diǎn)就是在場(chǎng)景中繪制一個(gè)三維點(diǎn);顯示邊最簡(jiǎn)單的算法可以將邊中的曲線在參數(shù)空間中等分采樣,再將參數(shù)對(duì)應(yīng)到曲線上的點(diǎn)連接起來(lái)就可以簡(jiǎn)單顯示邊了;而面的可視化如何實(shí)現(xiàn)呢?

幾何造型內(nèi)核中都有個(gè)參數(shù)曲線的概念,即PCurve(Parametric Curve),它是實(shí)現(xiàn)面可視化的一個(gè)很關(guān)鍵的數(shù)據(jù)。PCurve的定義是參數(shù)表示的曲面上的曲線在二維(u, v)參數(shù)空間中的二維樣條曲線,也就是曲面上的曲線(Curve on Surface)。

在理解PCurve定義的基礎(chǔ)上才好對(duì)其做進(jìn)一步的研究,好回答“從哪兒來(lái)到哪兒去的問(wèn)題”,即如何產(chǎn)生PCurve,如何使用生成的PCurve數(shù)據(jù)。本文主要介紹如何將OpenCASCADE拓樸面中的PCurve可視化,從而方便對(duì)拓樸面的檢查,也可以看出PCurve在曲可視化方面的應(yīng)用。PCurve的產(chǎn)生及其他應(yīng)用有待進(jìn)一步挖掘。若您對(duì)PCurve有何看法,歡迎不吝賜教。


2.PCurve of a Face

由OpenCASCADE中對(duì)拓樸形狀可視化的算法[2]可知,對(duì)面的網(wǎng)格化需要先對(duì)面中環(huán),環(huán)中的邊進(jìn)行離散化,最后都統(tǒng)一到參數(shù)空間,即只需要一個(gè)二維網(wǎng)格化算法來(lái)對(duì)二維的參數(shù)空間進(jìn)行網(wǎng)格化,最后將參數(shù)空間網(wǎng)格化的點(diǎn)映射回面中的幾何曲面上,即得到曲面的空間網(wǎng)格剖分。

wps_clip_image-29946

Figure 2.1 Mesh UV domain of a Surface

如上圖2.1所示,UV參數(shù)空間中的邊界線就是拓樸面的環(huán)中的邊的PCurve,即拓樸面中的環(huán)對(duì)應(yīng)了參數(shù)空間中的邊界,而這些邊界的表示就是使用了PCurve。對(duì)參數(shù)空間進(jìn)行網(wǎng)格化最常見(jiàn)的算法就是Delaunay三角剖分算法[3],早期OpenCASCADE的版本中使用了一個(gè)開源Delaunay庫(kù)Triangle[4]。通過(guò)將曲面在參數(shù)空間的結(jié)果映射回曲面的三維空間即可將曲面可視化了。如何控制曲面離散精度還有待進(jìn)一步學(xué)習(xí)。

wps_clip_image-30572

Figure 2.2 A Smiley Face Meshed by Triangle

上圖2.2所示為二維三角剖分庫(kù)Triangle對(duì)一個(gè)笑臉進(jìn)行剖分的結(jié)果。

在Draw Test Harness中,OpenCASCADE提供了對(duì)面的PCurve可視化的命令pcurve。使用pcurve命令可以將一個(gè)面中所有的pcurve根據(jù)朝向orientation以不同的顏色進(jìn)行顯示。這個(gè)命令對(duì)檢查面中邊的朝向的正確性非常有用。下面使用Tcl命令在Draw Test Harness中對(duì)基本曲面的PCurve進(jìn)行顯示。

2.1 Plane PCurve

OpenCASCADE中的平面的參數(shù)方程為:

wps_clip_image-8180

由上述參數(shù)表示的平面方程可知,平面的定義域是無(wú)窮的,所以為了生成一個(gè)有環(huán)的拓樸面,需要對(duì)平面設(shè)置邊界來(lái)對(duì)無(wú)限的平面進(jìn)行裁剪。相應(yīng)的Tcl腳本如下所示:

# 1. view the pcurves of a plane face
plane p

# trim the plane to (u,v)->[-1, 1][-1, 1]
trim p p -1 1 -1 1

# make the topo face
mkface p p

# extract the 2d curve of an edge on a face
pcurve p

# display pcurve in 2d viewer
av2d
fit
2dfit

# display face in 3d viewer
vdisplay p

生成結(jié)果如下圖所示:

wps_clip_image-22514

Figure 2.3 Color for PCurves

由圖2.3可知,pcurve有四種顏色:

v rouge: FORWARD 胭脂紅表示正向;

v bleu: REVERSED 藍(lán)色表示反向;(不知道是法語(yǔ)寫法還是個(gè)錯(cuò)別字,藍(lán)色英語(yǔ)應(yīng)該為blue)

v rose: EXTERNAL 玫瑰紅表示向外;

v orange: INTERNAL 橙黃色表示向內(nèi);

根據(jù)上述的顏色規(guī)則來(lái)看圖2.4,可以看出平面邊界的pcurves是逆時(shí)針閉合的。

wps_clip_image-6057

Figure 2.4 Plane PCurves

wps_clip_image-27675

Figure 2.5 Plane Face in 3D Viewer

2.2 Cylinder PCurve

OpenCASCADE中圓柱面的參數(shù)方程為:

wps_clip_image-5104

由上述參數(shù)方程可知,u的取值范圍是有界的[2, 2pi),v的取值是無(wú)限的。所以為了得到有界的拓樸面,至少需要對(duì)其v方向進(jìn)行裁剪。相應(yīng)的Tcl腳本如下所示:

# 2. view the pcurves of a cylinder face
cylinder c 1

# trim the cylinder to (u,v)->[0, 2pi][0, 1]
trim c c 0 2*pi 0 1

# make the topo face
mkface c c 

# extract the 2d curve of an edge on a face
pcurve c

# display pcurves in 2d viewer
av2d
2dfit
fit

# display face in 3d viewer
vdisplay c

生成結(jié)果如下圖所示:

wps_clip_image-19747

Figure 2.6 Cylinder PCurves

由上圖根據(jù)pcurve的著色規(guī)則可知,圓柱面的pcurves也是按逆時(shí)針順序閉合的。其在三維中的顯示結(jié)果如下圖所示:

wps_clip_image-28392

Figure 2.7 Cylinder Face in 3d Viewer

3.3 Cone PCurve

OpenCASCADE中圓錐面的參數(shù)方程為:

wps_clip_image-17202

可知圓錐曲面與圓柱曲面一樣,都是在u方向有界,在v方向無(wú)界。對(duì)其進(jìn)行裁剪生成拓樸面并顯示pcurve的Tcl腳本如下所示:

# 3. view the pcurves of a cone face
cone co 30 0

# trim the cone to (u,v)->[0, 2pi][0, 1]
trim co co 0 2*pi 0 1

# make the topo face
mkface co co

# extract pcurves
pcurve co

# display pcurves in 2d viewer
av2d
2dfit
fit

# display face in 3d viewer
vdisplay co

生成結(jié)果如下圖所示:

wps_clip_image-29814

Figure 2.8 Cone PCurves

由上圖根據(jù)pcurve的著色規(guī)則可知,圓錐面的pcurves也是按逆時(shí)針順序閉合的。其在三維中的顯示結(jié)果如下圖所示:

wps_clip_image-1397

Figure 2.9 Cone Face in 3D viewer

3.4 Sphere PCurve

OpenCASCADE中球面的參數(shù)方程為:

wps_clip_image-5770

由上述參數(shù)方程可知,球面在u和v方向均為有界的,所以可不用對(duì)其進(jìn)行裁剪就可生成拓樸面,當(dāng)然也可對(duì)其裁剪得到球面的部分。顯示球面pcurves的Tcl腳本如下所示:

# 4. view the pcurves of a sphere face
sphere s 1

# make the topo face
mkface s s 

# extract pcurves
pcurve s

# display pcurves in 2d viewer
av2d
2dfit
fit

# display sphere face in 3d viewer
vdisplay s

生成結(jié)果如下圖所示:

wps_clip_image-16324

Figure 2.10 Sphere PCurves

由上圖根據(jù)pcurve的著色規(guī)則可知,球面的pcurves也是按逆時(shí)針順序閉合的。其在三維中的顯示結(jié)果如下圖所示:

wps_clip_image-29852

Figure 2.11 Sphere in 3d viewer

3.5 Torus PCurve

OpenCASCADE中圓環(huán)面的參數(shù)方程為:

wps_clip_image-12978

由圓環(huán)面的參數(shù)方程可知,在參數(shù)區(qū)間上u和v都是有界的,所以可不用對(duì)其進(jìn)行裁剪就可生成拓樸面,當(dāng)然也可對(duì)其裁剪得到圓環(huán)面的部分。顯示圓環(huán)面pcurves的Tcl腳本如下所示:


# 5. view the pcurves of a torus face
torus t 20 5

# make the topo face
mkface t t

# extract pcurves
pcurve t

# display pcurves in 2d viewer
av2d
2dfit
fit
# display torus in 3d viewer
vdisplay t

生成結(jié)果如下圖所示:

wps_clip_image-22530

Figuer 2.12 Torus PCurves

由上圖根據(jù)pcurve的著色規(guī)則可知,圓環(huán)面的pcurves也是按逆時(shí)針順序閉合的。其在三維中的顯示結(jié)果如下圖所示:

wps_clip_image-10501

Figure 2.13 Torus in 3d viewer

3.PCurve of a Face With Holes

由OpenGL編程指南[10]可知,要對(duì)一個(gè)NURBS曲面進(jìn)行裁剪,可以創(chuàng)建gluPwlCurve和gluNurbsCurve來(lái)在參數(shù)空間形成閉合區(qū)域。其中g(shù)luPwlCurve創(chuàng)建是多段直線,而gluNurbsCurve生成的是在單位參數(shù)空間的NURBS曲線。創(chuàng)建裁剪曲線時(shí)需要考慮曲線的朝向(orientation),即曲線是順時(shí)針的還是逆時(shí)針的。曲線裁剪曲面的方式很簡(jiǎn)單,想像你沿著曲線走,左手邊的將會(huì)被保留,右手邊的將會(huì)被去除。

wps_clip_image-29949

Figure 3.1 Parametric Trimming Curves

裁剪曲線還必須閉合且不能自交(Trimming curves must be closed and nonintersecting)。這里的裁剪曲線與OpenCASCADE中的參數(shù)曲線pcurve的概念相同。OpenCASCADE中的面也是采用的相同的規(guī)則。下面通過(guò)Tcl腳本來(lái)測(cè)試OpenCASCADE中帶有開孔的面的pcuve是否滿足OpenGL中裁剪曲面的規(guī)則。

# test face with one hole
plane p
trim p p 
-10 10 -10 10
mkface p p
pcylinder c 
1 2

bop p c
bopcut s

vdisplay s

explode s F
pcurve s_1

av2d
2dfit
fit

上述Tcl腳本為將一個(gè)平面用圓柱去挖一個(gè)孔,如下圖所示:

wps_clip_image-8553

Figure 3.2 Face with a Hole

遍歷被挖孔(boolean operation)得到的形狀的面,得到一個(gè)面,顯示這個(gè)面的pcurve如下圖所示:

wps_clip_image-26044

Figure 3.3 PCurve of a Face with one hole

由上圖3.3可知,pcurve的規(guī)則與OpenGL中的裁剪曲線一致。孔的pcurve為藍(lán)色,即為逆時(shí)針的反向:順時(shí)針。當(dāng)一個(gè)面上生成多個(gè)孔時(shí),是否仍然滿足上述規(guī)則呢?下面使用Tcl來(lái)對(duì)驗(yàn)證一下:

# test pcurve of a face with multi-holes
sphere s 10
mkface s s

pcylinder c1 
1 30
pcylinder c2 
1 30

ttranslate c1 
-5 -5 -15
ttranslate c2 
5 5 -15

bop s c1
bopcut s

bop s c2
bopcut s

explode s F
pcurve s_1

av2d
2dfit
fit

用腳本在一個(gè)球面上生成四個(gè)孔,如下圖所示:

wps_clip_image-13810

Figure 3.4 A sphere face with 4 holes

遍歷boolean operation生成孔后的形狀的面,可看到只生成了一個(gè)面。將這個(gè)面的pcurve顯示出來(lái)如下圖所示:

wps_clip_image-16372

Figure 3.5 PCurves for a sphere with 4 holes

由上圖3.5可知,pcurve的朝向也與OpenGL中裁剪曲線的朝向一致。當(dāng)一個(gè)面生成的開孔如圖3.1中的D和E時(shí),在OpenCASCADE中是如何表示的呢?下面也有Tcl腳本測(cè)試測(cè)試:

plane p
trim p p 
-10 10 -10 10
mkface p p

ptorus t 
5 1

bop p t
bopcut s

vdisplay s

explode s F
pcurve s_1
pcurve s_2

av2d
2dfit
fit

生成結(jié)果如下圖所示:

wps_clip_image-31602

Figure 3.6 A Plane cut a Torus

wps_clip_image-8216

Figure 3.7 PCurves for the faces

由上圖可知,當(dāng)一個(gè)平面去掉一個(gè)圓環(huán)面后,生成了兩個(gè)面,與有些幾何內(nèi)核的用鏈表來(lái)將結(jié)果表示成一個(gè)面不同,OpenCASCADE中將結(jié)果生成了兩個(gè)面。其pcurves的朝向也與OpenGL中的裁剪曲線的朝向一致。

4.Conclusion

綜上所述,曲面上的曲線pcurve的概念是一個(gè)非常重要的概念,理解pcurve對(duì)造型及可視化有著重要意義。本文結(jié)合OpenGL中裁剪曲線的規(guī)則及OpenCASCADE的Draw Test Harness中顯示拓樸面pcurve的命令,來(lái)對(duì)基本曲面及裁剪曲面的pcurve的朝向進(jìn)行檢驗(yàn)。掌握了這些規(guī)則,可方便對(duì)自己構(gòu)造拓樸面的正確性進(jìn)行檢驗(yàn)。

5. Acknowledge

時(shí)光荏苒,從畢業(yè)到現(xiàn)在不經(jīng)意間就到了而立之年。滄海桑田,歲月蹉跎,經(jīng)歷春夏秋冬的四季,品嘗酸甜苦辣的人生。感謝一路走來(lái),親人、朋友、同事等對(duì)給予我的支持,信任和鼓勵(lì),讓我可以做自己喜歡的事情,找到人生的方向。

寄蜉蝣與天地,渺滄海之一粟。準(zhǔn)備回到離家近的武漢工作,切換到生活模式,多些時(shí)間陪伴父母親人,以報(bào)養(yǎng)育之恩。

6. References

1. Shing Liu. PCurve - Curve on Surface. 

http://www.cnblogs.com/opencascade/p/3601859.html

2. Shing Liu. Topology and Geometry in OpenCASCADE-Edge.

http://www.cnblogs.com/opencascade/p/3604052.html

3. Topology and Geometry in OpenCASCADE-Face.

http://www.cnblogs.com/opencascade/p/3605729.html

4. Shing Liu. Mesh Algorithm in OpenCASCADE.  http://www.cnblogs.com/opencascade/p/3648532.html

5. Shing Liu. Delaunay Triangulation in OpenCASCADE. 

http://www.shnenglu.com/eryar/archive/2013/05/26/200605.aspx

6. Shing Liu. Triangle-Delaunay Triangulator. 

http://www.cnblogs.com/opencascade/p/3632705.html

7. OpenCASCADE, Draw Test Harness User Guide.

8. OpenCASCADE, BRep Format White Paper.

9. Richard S. Wright Jr., Benjamin Lipchak. OpenGL SuperBible. Sams Publishing. 2004

10. Dave Shreiner. OpenGL Programming Guide. Addison-Wesley. 2009

Feedback

# re: OpenCASCADE PCurve of Topological Face  回復(fù)  更多評(píng)論   

2015-11-08 23:13 by 佚名
博主您好!
一直喜歡讀您的博文,受益匪淺,現(xiàn)在碰到個(gè)問(wèn)題想請(qǐng)教,就是兩個(gè)面的共享邊問(wèn)題,面是通過(guò)edge生成的,比如三條edge邊a、b、c生成一個(gè)面,a、d、e生成另外一個(gè)面,應(yīng)該說(shuō)它們有共享邊a,可是實(shí)際上explore兩個(gè)面發(fā)現(xiàn)它們沒(méi)有共享邊,在它們交界處是重合的兩條邊,這兩條邊既不isequal也不issame,不知道是何原因,怎么才能保障共邊,請(qǐng)指教,謝謝。

# re: OpenCASCADE PCurve of Topological Face  回復(fù)  更多評(píng)論   

2015-11-09 19:04 by eryar
@佚名
可以把代碼貼上來(lái)看看不?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品久久久久久久久免费樱桃 | 亚洲午夜一区二区三区| 在线日韩中文| 亚洲综合不卡| 亚洲欧美激情视频| 欧美另类人妖| 欧美黄污视频| 国内精品美女av在线播放| 亚洲综合社区| 亚洲美女在线一区| 夜夜嗨av色综合久久久综合网| 欧美电影资源| 91久久久国产精品| 欧美77777| 欧美肥婆在线| 99亚洲视频| 亚洲国产高清高潮精品美女| 美日韩精品免费| 亚洲欧洲日韩女同| 欧美va日韩va| av不卡在线看| 日韩视频在线播放| 欧美成人精品三级在线观看| 欧美影片第一页| 久久综合久久综合久久| 在线观看日韩av先锋影音电影院| 免费亚洲网站| 久久夜色精品国产| 亚洲精品小视频| 午夜在线电影亚洲一区| 国产在线精品成人一区二区三区| 国产精品卡一卡二卡三| 欧美日韩另类视频| 欧美在线|欧美| 午夜精品久久久久影视| 欧美成人午夜激情在线| 免费精品99久久国产综合精品| 亚洲午夜三级在线| 国产综合激情| 国内久久精品视频| 国内一区二区三区| 国产精品美女一区二区在线观看| 欧美日韩在线播放一区| 欧美视频网址| 欧美成人免费观看| 欧美高清视频在线观看| 久久精品人人做人人爽电影蜜月| 亚洲精品欧美日韩专区| 亚洲高清久久网| 欧美一区二区成人| 在线视频精品一| 在线精品亚洲| 亚洲精品影院| 亚洲欧美激情一区二区| 午夜精品久久久久影视| 日韩亚洲欧美在线观看| 亚洲午夜av| 久久久久久精| 欧美在线一二三区| 亚洲女人小视频在线观看| 久久成人久久爱| 老巨人导航500精品| 欧美一区二区精品| 老**午夜毛片一区二区三区| 亚洲成人在线视频网站| 久久视频一区二区| 亚洲国产美女精品久久久久∴| 老妇喷水一区二区三区| 91久久精品日日躁夜夜躁国产| 999在线观看精品免费不卡网站| 亚洲在线日韩| 亚洲欧美另类在线观看| 久久天天狠狠| 国产精品多人| 国产精品av久久久久久麻豆网| 欧美国产精品人人做人人爱| 国产精品久久久999| 激情欧美亚洲| 亚洲电影第1页| 亚洲免费一区二区| 老司机久久99久久精品播放免费 | 亚洲特级毛片| 久久尤物电影视频在线观看| 篠田优中文在线播放第一区| 亚洲私人影院在线观看| 久久免费99精品久久久久久| 欧美日韩免费观看一区三区| 含羞草久久爱69一区| 亚洲性感美女99在线| 模特精品在线| 亚洲免费视频一区二区| 欧美另类亚洲| 亚洲第一毛片| 欧美一区二区三区在线免费观看| 亚洲高清不卡av| 久久国产精品久久国产精品| 性感少妇一区| 欧美日韩成人在线播放| 欧美色大人视频| 亚洲国产片色| 亚洲精品国产日韩| 亚洲女人av| 最新69国产成人精品视频免费| 欧美一级淫片aaaaaaa视频| 久久国产福利国产秒拍| 国产精品久久久久久一区二区三区| 亚洲电影专区| 久久精品欧美日韩精品| 免费观看亚洲视频大全| 亚洲欧美日韩网| 国产精品va在线播放| 日韩天堂在线观看| 免费视频最近日韩| 久久久精品免费视频| 国产午夜精品福利| 亚洲国产精品t66y| 久久一区激情| 欧美在线一级va免费观看| 国产精品亚洲一区| 在线观看成人av| 久久视频一区| 久久精品中文字幕一区二区三区 | 亚洲人成人99网站| 亚洲视频国产视频| 久久中文字幕一区| 欧美中文在线观看| 国内精品久久久久久久97牛牛| 欧美在线免费看| 欧美一区二区播放| 红桃视频国产一区| 狂野欧美一区| 久久资源在线| 亚洲精品国产精品久久清纯直播| 蘑菇福利视频一区播放| 免费视频一区| 亚洲精品一区二区在线观看| 91久久久久久久久| 欧美日韩福利在线观看| 一区二区三区三区在线| 一本不卡影院| 蜜桃av久久久亚洲精品| 亚洲国产精品久久91精品| 亚洲国产成人久久| 欧美日韩一区二区在线播放| 亚洲视频在线免费观看| 亚洲一本大道在线| 国产伦精品一区二区三区免费迷 | 亚洲视频一区二区在线观看| 久久综合九色九九| 亚洲欧洲精品一区二区三区不卡| 亚洲国产精品久久久久| 欧美三级网址| 久久精品国产精品亚洲精品| 久久精品国产欧美亚洲人人爽| 在线欧美三区| 亚洲日本中文| 免费影视亚洲| 亚洲视频在线观看一区| 亚洲欧美在线一区| 影音先锋亚洲精品| 亚洲人久久久| 国产区精品在线观看| 午夜精品亚洲一区二区三区嫩草| 午夜一区二区三区在线观看 | 亚洲深夜福利在线| 国产字幕视频一区二区| 亚洲国产乱码最新视频| 国产精品久久久久99| 免费亚洲电影| 欧美午夜精品久久久久久人妖 | 亚洲伦伦在线| 国产亚洲精品aa| 欧美伊久线香蕉线新在线| 久久深夜福利| 亚洲欧美成人一区二区三区| 久久国产精品99久久久久久老狼| 亚洲精品一区二区三区99| 亚洲一区二区三区高清| 亚洲国产成人在线| 亚洲一区二区三区在线视频| 亚洲成人在线免费| 亚洲综合不卡| 99视频在线精品国自产拍免费观看| 亚洲欧美视频一区| 亚洲精品影视| 久久久久久一区二区三区| 在线成人欧美| 亚洲视频www| 亚洲精品一二区| 久久成人综合网| 午夜国产欧美理论在线播放| 免费观看在线综合| 久久综合99re88久久爱| 国产精品都在这里| 亚洲欧洲一二三| 亚洲国产91| 久久精品国产欧美激情| 性色一区二区| 国产精品国产三级国产专区53| 欧美二区不卡|