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(,),,);
const D2D1_ELLIPSE ellipse2 = Ellipse(Point2F(,),,);
//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
Direct2D 图形计算的更多相关文章
- 【HMC Core 6.0全球上线】图形计算服务新插件,助力高画质3D手游创新
HMS Core 6.0已于7月15日全球上线,本次新版本向广大开发者开放了众多全新能力与技术.其中华为图形计算服务(CG Kit)开放了体积雾插件和流体插件,为3D手游画面的提升提供了坚实的技术基础 ...
- Direct2D 几何计算和几何变幻
D2D不仅可以绘制,还可以对多个几何图形对象进行空间运算.这功能应该在GIS界比较吃香. 这些计算包括: 合并几何对象,可以设置求交还是求并,CombineWithGeometry 边界,加宽边界,查 ...
- PHP面向对象实例(图形计算器)
效果:
- UWP中的Direct2D
介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术. ...
- Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark Streaming简介 1.1 概述 Spark Streaming 是Spa ...
- Spark Streaming实时计算框架介绍
随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在 ...
- android图形基础知识
Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 2010-06-13 22:49 18223人阅读 评论(18) 收藏 举报 AndroidGDI基本框架 在An ...
- Android图形合成和显示系统---基于高通MSM8k MDP4平台
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...
- Spark 介绍(基于内存计算的大数据并行计算框架)
Spark 介绍(基于内存计算的大数据并行计算框架) Hadoop与Spark 行业广泛使用Hadoop来分析他们的数据集.原因是Hadoop框架基于一个简单的编程模型(MapReduce),它支持 ...
随机推荐
- 6个技巧加速你的gradle编译
近期我们都在讨论build系统,我们看了一些技巧能够让你的Maven build更快. 结论和反映都势不可挡.由于我们提供的技巧,很多其它的人都非常高兴能加快他们完毕自己的项目.如今,让我们看一下怎么 ...
- Cocos2d-x学习笔记(十四)CCAutoreleasePool具体解释
原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38964637 前言 之前学了那么多的内容.差点儿全部的控件都要涉及内存 ...
- BZOJ 3544 treap (set)
我只是想找个treap的练习题-- 每回找到lower_bound 就好啦 //By SiriusRen #include <cstdio> #include <cstring> ...
- Python(四) 分支、循环、条件与枚举
一.什么是表达式 表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列 二.表达式的优先级 三.表达式优先级练习 优先级同级 从左往右计算 1 or 2 a ...
- chgrp---改变文件或目录所属的用户组
chgrp命令用来改变文件或目录所属的用户组.该命令用来改变指定文件所属的用户组.其中,组名可以是用户组的id,也可以是用户组的组名.文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描 ...
- C# Socket服务端及多客户端连接通信实现
服务端代码(控制台示例): static List<Socket> Sockets = new List<Socket>(); static void Main(string[ ...
- [Python] Wikipedia Crawler
import time import urllib import bs4 import requests start_url = "https://en.wikipedia.org/wiki ...
- ChinaVis2015 第一天会议
第二届 ChinaVis 2015 在天津举行,非常幸运发现者个会议,并在导师的带领下參与本次会议. 主要要是以可视化与可视分析为背景进行讲座,以马匡六为Speaker.袁晓如,张加万等致辞开幕式. ...
- iOS定制改动navigation的backbutton
iOS开发中.navigation的返回button是英文"back".想改动成中文"返回"或者自己定义的文字.这么简单的事情却折腾了小半个小时.原来是被lef ...
- 通过jQuery的Ajax方式来提交Form表单
通过jQuery的Ajax方式来提交Form表单 $.ajax({ url:ajaxCallUrl, type:"POST", cache:true, async:false, d ...