Direct2D 几何计算和几何变幻
D2D不仅可以绘制,还可以对多个几何图形对象进行空间运算。这功能应该在GIS界比较吃香。
这些计算包括:
- 合并几何对象,可以设置求交还是求并,CombineWithGeometry
- 边界,加宽边界,查询边界。Widen、GetBounds、GetWidenedBounds
- 几何对象填充的区域是否包含指定点,FillContainsPoint
- 笔画是否包含点,StrokeContainsPoint
- 几何对象与指定几何对象之间的交集,CompareWithGeometry
- 创建仅包含直线和(可选)三次方贝塞尔曲线的简化版本的几何对象,Simplify
- 网格化,创建一组顺时针缠绕的三角形,Tessellate
- 计算几何对象的轮廓(移除交集),Outline
- 几何对象上指定距离处的点和正切矢量,ComputePointAtLength
- 计算几何对象的面积,ComputeArea
- 计算几何对象的长度,ComputeLength
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();
除此之外,D2D还支持对几何对象的变幻,包括:
- 旋转,
- 缩放,
- 平移,
Direct2D 几何计算和几何变幻的更多相关文章
- 1549: Navigition Problem (几何计算+模拟 细节较多)
1549: Navigition Problem Submit Page Summary Time Limit: 1 Sec Memory Limit: 256 Mb Su ...
- Jack Straws POJ - 1127 (几何计算)
Jack Straws Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5428 Accepted: 2461 Descr ...
- Envelope几何对象 Curve对象几何对象 Multipatch几何对象 Geometry集合接口 IGeometryCollection接口
Envelope是所有几何对象的外接矩形,用于表示几何对象的最小边框,所有的几何对象都有一个Envelope对象,IEnvelope是Envelope对象的主要接口,通过它可以获取几何对象的XMax, ...
- SPEC 2000 整形和浮点性能测试结果是各项基准程序得分的几何平均值,几何平均值是 n 个数连乘之 后再开 n 次根号
SPEC 2000 能够生成多种格式的测试结果报表,包括 asc,ps,raw,pdf,html 等格式,报 表所在目录为/home/sepc2000all/result. 整形和浮点性能测试结果是 ...
- Direct2D教程VII——变换几何(TransformedGeometry)对象
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct ...
- hdu1115(计算多边形几何重心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给出一些点,求这些点围成的多边形的重心: 思路: 方法1:直接分别求所有点的x坐标的平均值 ...
- UVALive 6092 Catching Shade in Flatland --枚举+几何计算
题意:x=[-200,200],y=[-200,200]的平面,一天中太阳从不同角度射到长椅(原点(0,0))上,有一些树(用圆表示),问哪个时刻(分钟为单位)太阳光线与这些圆所交的弦长总和最长.太阳 ...
- Jack Straws POJ - 1127 (简单几何计算 + 并查集)
In the game of Jack Straws, a number of plastic or wooden "straws" are dumped on the table ...
- HDU——2056Rectangles(几何计算)
Rectangles Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- SPOJ 1811 Longest Common Substring (后缀自动机第一题,求两个串的最长公共子串)
题目大意: 给出两个长度小于等于25W的字符串,求它们的最长公共子串. 题目链接:http://www.spoj.com/problems/LCS/ 算法讨论: 二分+哈希, 后缀数组, 后缀自动机. ...
- (原)ubuntu上安装dlib
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5652791.html 参考网址: http://stackoverflow.com/questions ...
- php+mysql+pdo连接数据库
1.$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");/ ...
- 【Python网络编程】多线程聊天软件程序
课程设计的时候制作的多线程聊天软件程序 基于python3.4.3 import socket import pickle import threading import tkinter import ...
- 身份证校验程序(上)- 零基础入门学习Delphi48
身份证校验程序 让编程改变世界 Change the world by program [caption id="attachment_2699" align="alig ...
- ASP.NET MVC 4.0 学习6-Model Binding
一,ViewData,ViewBag與TempData ASP.NET MVC架構中,通過繼承在Controller中的ViewData,ViewBag和TempData和View頁面進行資料的存取, ...
- mysqlbackup
mysqlbackup 使用学习 1.设置数据库用户的相关权限 '; grant reload,replication client,super,process on *.* to backupuse ...
- 探索PHP+Nginx(二) 安装PHP
首先,我们简单了解一下什么是PHP,PHP(Hypertext Preprocessor 超文本预处理器) 和Java语言一样,PHP也是属于高级语言,并不能直接在操作系统上运行.Java运行需要虚拟 ...
- vhd镜像格式及vhd-util工具应用
概述 VHD 是微软虚拟磁盘文件格式,qemu和tapdisk2都能支持VHD镜像格式,不仅提供基本的虚拟机卷功能,还可提供磁盘快照.磁盘扩容等高级功能 vhd-util是个linux下的开源软件,通 ...
- Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008
Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008 Pros and Cons of T4 in Visual Studio 2008 Po ...