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

eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCascade Law Function

Posted on 2018-03-25 17:11 eryar 閱讀(1324) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCascade Law Function

eryar@163.com

1.Introduction

在OpenCASCADE的TKGeomAlgo Toolkit中提供了一個Law Package,在Law包中有一個基類:Law_Function,字面上翻譯為 規則函數。其類圖如下所示:

wps_clip_image-22828

Figure 1. Law Function class diagram

本文主要對Law_Function的子類進行介紹,進一步理解OpenCASCADE中Law相關類的作用。

2.Law Functions

根據Law_Function可知,Law_Function的子類有常量規則Law_Constant、線性規則Law_Linear、組合規則Law_Composite及B樣條規則Law_BSpFunc。抽象類Law_Function的純虛函數有:

l Continuity(): 規則函數的連續性;

l Value():計算對應參數X的函數值Y;

l D1():計算規則函數在參數X處的一階導數;

l D2():計算規則函數在參數X處的二階導數;

l Bounds():規則函數的定義區間;

wps_clip_image-13300

從上面的虛函數可以看出類Law_Function是一個一元變量的函數,與類math_Function的功能類似。

3.Test Code

下面的代碼將規則函數Law_Function的幾個子類通過生成Draw腳本,在Draw Test Harness中進行可視化,直觀地顯示出了幾個規則函數,便于理解。

/*
Copyright(C) 2018 Shing Liu(eryar@163.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions :
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include <TColgp_Array1OfPnt2d.hxx>
#include <Law_Constant.hxx>
#include <Law_Linear.hxx>
#include <Law_BSpFunc.hxx>
#include <Law_S.hxx>
#include <Law_Interpol.hxx>
#pragma comment(lib, "TKernel.lib")
#pragma comment(lib, "TKMath.lib")
#pragma comment(lib, "TKG2d.lib")
#pragma comment(lib, "TKG3d.lib")
#pragma comment(lib, "TKGeomBase.lib")
#pragma comment(lib, "TKGeomAlgo.lib")
Standard_Integer aId = 0;
void draw(const Handle(Law_Function)& theLaw, std::ostream& theOutput)
{
    const Standard_Integer aStep = 20;
    Standard_Real aFirst = 0.0;
    Standard_Real aLast = 0.0;
    Standard_Real aDelta = 0.0;
    Standard_Real aX = 0.0;
    Standard_Real aY = 0.0;
    theLaw->Bounds(aFirst, aLast);
    aDelta = (aLast - aFirst) / aStep;
    theOutput << "polyline law" << ++aId;
    for (Standard_Integer i = 0; i <= aStep; ++i)
    {
        aX = aFirst + i * aDelta;
        aY = theLaw->Value(aX);
        theOutput  << " " << aX << " " << aY << " 0.0";
    }
    theOutput << "\n vdisplay law" << aId << std::endl;
    theOutput << "vaspects law" << aId << " -setColor " << ((aId % 2) ? " red " : " yellow ") << std::endl;
}
void test(std::ostream& theOutput)
{
    // 1. Constant law.
    Handle(Law_Constant) aConstantLaw = new Law_Constant();
    aConstantLaw->Set(2.0, 0.0, 1.0);
    draw(aConstantLaw, theOutput);
    // 2. Linear evolution law.
    Handle(Law_Linear) aLinearLaw = new Law_Linear();
    aLinearLaw->Set(1.0, 2.0, 3.0, 5.0);
    draw(aLinearLaw, theOutput);
    // 3. An "S" evolution law.
    Handle(Law_S) aSLaw = new Law_S();
    aSLaw->Set(3.0, 5.0, 6.0, 8.0);
    draw(aSLaw, theOutput);
    // 4. Provides an evolution law that interpolates a set of parameter and value pairs (wi, radi)
    TColgp_Array1OfPnt2d aPoints(1, 4);
    aPoints.SetValue(1, gp_Pnt2d(6.0, 8.0));
    aPoints.SetValue(2, gp_Pnt2d(7.0, 5.0));
    aPoints.SetValue(3, gp_Pnt2d(8.0, 9.0));
    aPoints.SetValue(4, gp_Pnt2d(9.0, 2.0));
    Handle(Law_Interpol) anInterpolativeLaw = new Law_Interpol();
    anInterpolativeLaw->Set(aPoints);
    draw(anInterpolativeLaw, theOutput);
}
int main(int argc, char* argv[])
{
    std::ofstream aTclFile("d:/tcl/law.tcl");
    test(aTclFile);
    return 0;
}

程序會在d:/tcl中生成一個law.tcl文件,將此文件加載到Draw 中即可顯示出規則函數對應的曲線,如下圖所示:

wps_clip_image-6615

Figure 2. Visualization Law Function Curves

由圖可知,常量規則函數在定義區間內是一條直線;線性規則函數是一條直線;S型函數是S型的B樣條曲線;插值函數是根據指定點插值得到的B樣條曲線。

4.Conclusion

在OpenCASCADE中經常可以看到一些與Law相關的類,本文介紹了TKGeomAlgo中的Law包,綜上所述可知,Law就是一元函數,與math_Function的概念一致。

本文顯示規則曲線的方式可供借鑒,提高開發效率。只需要生成一個文本文件,就可以將結果可視化,對于其他三維的也是一樣。



為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
Shing Liu(eryar@163.com)

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美精品一区二| 欧美一级在线视频| 久久亚洲精品欧美| 欧美日韩一二三区| 亚洲一区久久| 91久久久久久久久| 99精品国产热久久91蜜凸| 免费久久99精品国产自在现线| 在线不卡免费欧美| 亚洲精品123区| 欧美视频在线观看视频极品| 先锋影音国产精品| 久久久噜久噜久久综合| 亚洲人体影院| 亚洲自拍16p| **性色生活片久久毛片| 日韩午夜在线电影| 国产中文一区二区| 亚洲国产一区二区三区高清| 欧美三级午夜理伦三级中文幕| 性久久久久久久久久久久| 久久激情视频久久| 一本一本久久a久久精品综合妖精| 在线视频日本亚洲性| 精品不卡在线| 亚洲深夜福利网站| 亚洲国产欧美一区二区三区同亚洲 | 国产精品激情| 久久影视精品| 国产精品r级在线| 蜜桃视频一区| 国产精品一区二区三区免费观看| 噜噜噜久久亚洲精品国产品小说| 欧美日韩视频一区二区| 免费在线视频一区| 国产亚洲成av人在线观看导航| 亚洲大片在线观看| 国内揄拍国内精品久久| 夜夜嗨av一区二区三区网站四季av| 国内欧美视频一区二区| 宅男在线国产精品| 亚洲精品永久免费| 久久久亚洲欧洲日产国码αv| 亚洲免费影视第一页| 欧美成人高清视频| 免费中文日韩| 国产又爽又黄的激情精品视频| 一区二区三区高清在线观看| 99re6热在线精品视频播放速度| 欧美一区二区三区免费看| 亚洲免费视频中文字幕| 欧美激情综合网| 欧美成人激情视频免费观看| 国内在线观看一区二区三区| 亚洲永久在线| 欧美亚洲午夜视频在线观看| 欧美三级午夜理伦三级中视频| 91久久极品少妇xxxxⅹ软件| 在线免费观看成人网| 久久精品在线观看| 久久久精品性| 国内伊人久久久久久网站视频| 午夜精品www| 久久9热精品视频| 国产精品羞羞答答| 午夜视频一区在线观看| 欧美在线观看www| 国产主播在线一区| 久久精品综合网| 欧美 日韩 国产精品免费观看| 永久久久久久| 欧美激情国产日韩| 亚洲精品你懂的| 亚洲乱码国产乱码精品精| 欧美va亚洲va国产综合| 最新中文字幕亚洲| 一区二区三区四区五区精品| 国产精品久99| 午夜在线a亚洲v天堂网2018| 久久精品中文字幕一区| 狠狠狠色丁香婷婷综合久久五月 | 一区二区三区精品视频在线观看| 亚洲淫片在线视频| 国产午夜精品久久久久久免费视| 午夜天堂精品久久久久| 久久亚洲综合| 99视频精品在线| 国产精品无码永久免费888| 久久国产欧美| 亚洲精品日韩久久| 欧美一区二区在线看| 激情综合亚洲| 欧美色精品天天在线观看视频 | 亚洲精品在线视频观看| 亚洲欧美综合国产精品一区| 国产综合精品| 欧美日产国产成人免费图片| 亚洲一区二区三区免费视频| 美女视频网站黄色亚洲| 亚洲午夜国产成人av电影男同| 国产欧美亚洲一区| 欧美成人午夜剧场免费观看| 亚洲一区二区三区四区五区午夜| 美女诱惑一区| 亚洲在线播放| 91久久精品美女| 国产伦精品一区二区三| 欧美成人首页| 欧美在线视频一区二区| 亚洲精品一级| 欧美成人亚洲成人日韩成人| 亚洲欧美美女| 91久久精品国产91性色tv| 国产日韩欧美在线播放| 欧美日韩久久| 嫩模写真一区二区三区三州| 久久成人精品视频| 亚洲一区二区三区影院| 亚洲三级性片| 欧美jizz19hd性欧美| 欧美中文字幕在线播放| 这里只有精品视频在线| 亚洲黄网站黄| 黄色资源网久久资源365| 国产精品日韩专区| 欧美视频第二页| 欧美久久久久久| 女人色偷偷aa久久天堂| 久久美女性网| 久久久久久久综合| 久久精品国产亚洲高清剧情介绍| 国产精品99久久久久久白浆小说| 欧美激情一区三区| 欧美插天视频在线播放| 免费精品视频| 免费日韩av片| 男人插女人欧美| 女人香蕉久久**毛片精品| 久久中文久久字幕| 开心色5月久久精品| 久久久久久久激情视频| 久久久亚洲欧洲日产国码αv| 香蕉成人伊视频在线观看| 欧美亚洲午夜视频在线观看| 欧美影院成人| 久久精品在线视频| 久久婷婷综合激情| 卡通动漫国产精品| 欧美激情一区二区三区高清视频 | 先锋影音一区二区三区| 欧美一区二区三区在线| 久久精选视频| 农村妇女精品| 99精品视频免费| 夜夜嗨av色一区二区不卡| 亚洲一区欧美激情| 欧美一区日韩一区| 久久久久久久久久看片| 欧美大片免费观看| 欧美日韩一区二区三区四区五区 | 国产精品一区二区三区四区| 国产手机视频精品| 在线日韩欧美| 艳妇臀荡乳欲伦亚洲一区| 亚洲综合视频一区| 久久久久久夜| 最新高清无码专区| 亚洲视频每日更新| 久久午夜电影| 欧美日韩国产色综合一二三四 | 日韩视频免费观看高清完整版| 亚洲最黄网站| 久久国产精品网站| 亚洲国产成人精品女人久久久 | 韩国一区二区三区在线观看| 亚洲高清精品中出| 亚洲一二三区在线观看| 久久久久久亚洲综合影院红桃| 亚洲成色最大综合在线| 中文在线资源观看视频网站免费不卡| 欧美亚洲在线播放| 欧美激情91| 国产一区在线视频| 亚洲网站在线播放| 蜜桃视频一区| 欧美亚洲自偷自偷| 欧美精品一区二区三区在线看午夜| 国产伦一区二区三区色一情| 91久久综合亚洲鲁鲁五月天| 亚洲欧美经典视频| 亚洲国产精品欧美一二99| 亚洲男人影院| 欧美日韩ab| 亚洲福利小视频| 久久九九国产精品| 亚洲系列中文字幕| 欧美理论电影网| 亚洲国产一区二区三区在线播 | 亚洲午夜免费视频| 亚洲国产精品电影|