zoukankan      html  css  js  c++  java
  • Direct2D 图形计算

    D2D不仅可以绘制,还可以对多个几何图形对象进行空间运算。这功能应该在GIS界比较吃香。

    这些计算包括:

    写一个合并的

    pRenderTarget->BeginDraw();
    
        //clear screen
        pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
    
        //define 2 ellipse
        const D2D1_ELLIPSE ellipse1 = Ellipse(Point2F(200,300),150,150);
        const D2D1_ELLIPSE ellipse2 = Ellipse(Point2F(200,250),100,200);
    
        //define ellipse geometry for compute
        ID2D1EllipseGeometry* pEllipse1 = NULL;
        ID2D1EllipseGeometry* pEllipse2 = NULL;
        //define path for render the combine result
        ID2D1PathGeometry* pPathGeo = NULL;
        //define a path container
        ID2D1GeometrySink* pGeometrySink = NULL;
    
        //initialize the ellipses and path.
        hr = pD2DFactory->CreateEllipseGeometry(ellipse1, &pEllipse1);
        hr = pD2DFactory->CreateEllipseGeometry(ellipse2, &pEllipse2);
        hr = pD2DFactory->CreatePathGeometry(&pPathGeo);
    
        //begin add path
        pPathGeo->Open(&pGeometrySink);
        //combine the 2 ellipse and the result go into the sink
        pEllipse1->CombineWithGeometry(pEllipse2, D2D1_COMBINE_MODE_UNION, NULL, NULL, pGeometrySink); 
        //end add path
        pGeometrySink->Close();
        //draw the path
        pRenderTarget->DrawGeometry(pPathGeo, pBlackBrush);
    
        pRenderTarget->EndDraw();

    例子:对两个圆求并集,并将绘制结果存存储到一个path中,在组成path的关节的过程中需要用sink对象。最后绘制path

  • 相关阅读:
    Python与mongo交互
    MongoDB数据库操作
    爬虫之xpath解析库
    selenium常用操作
    无头浏览器的使用
    BeautifulSoup库使用
    urllib简单介绍
    爬虫自动化工具防检测
    支付宝支付
    TortoiseSVN使用教程[多图超详细]
  • 原文地址:https://www.cnblogs.com/ye-ming/p/8513370.html
Copyright © 2011-2022 走看看