﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-λ-calculus in C++Blogs-随笔分类-2D</title><link>http://www.cppblog.com/vczh/category/7351.html</link><description>【QQ：343056143（已满），504254078】【MSN：vczh@hotmail.com】【Email：vczh@163.com】</description><language>zh-cn</language><lastBuildDate>Tue, 09 Sep 2008 04:19:42 GMT</lastBuildDate><pubDate>Tue, 09 Sep 2008 04:19:42 GMT</pubDate><ttl>60</ttl><item><title>将树型数据结构转换为图片并自动排版</title><link>http://www.cppblog.com/vczh/archive/2008/09/07/61244.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sun, 07 Sep 2008 12:18:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/09/07/61244.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/61244.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/09/07/61244.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/61244.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/61244.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 『啊，葱爆羊肉真是香啊。』一边回忆着这个令人感动的美食，一边心不在焉地写了个程序。这个小程序实现了一个很简单的功能，将一棵树转换成bmp图片并自动排版。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/09/07/61244.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/61244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-09-07 20:18 <a href="http://www.cppblog.com/vczh/archive/2008/09/07/61244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用拓扑进行几何图形布尔运算</title><link>http://www.cppblog.com/vczh/archive/2008/06/17/53675.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Tue, 17 Jun 2008 03:20:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/17/53675.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/53675.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/17/53675.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/53675.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/53675.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     首先吐槽一下：今天考IT项目管理，100道选择题。前几天考配置管理，10道大题。如今的老师都喜欢走极端……<br><br>    这个方法是在考完试回宿舍的路上想到的，适用于2D与3D。主要想法是这样的。给定两个几何图形A、B，把A和B都分成『内『、『外』两部分。A的『内』就是处于B内部的部分。于是A和B就变成了A内、A外、B内、B外。然后就有如下公式：<br>    ·A and B=A外+B外<br>    ·A sub B=A外+B内<br>    ·A or B=A内+B内<br>    ·A xor B=A外+B外+A内+B内<br>    这种数据结构是为了满足如下算法：一个A点在图形内<==>过这个点的直线交图形与点集P，其中|{Pi|Pi<=A}|和|{Pi|Pi>=A}|都是奇数。注意我们使用的是<=和>=，这样的话两个集合的数量的奇偶性都是一致的。这个算法无论2D、3D多边形还是3D多面体都能适用，就算是这个图形有孔（镶嵌）也可以，而且跟凹凸体无关。这个算法只有一种情况是不能用的：就是自己跟自己有交叉，譬如我们习惯的5条直线构成五角星的画法。这&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/06/17/53675.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/53675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-17 11:20 <a href="http://www.cppblog.com/vczh/archive/2008/06/17/53675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>接下去的事情</title><link>http://www.cppblog.com/vczh/archive/2008/06/13/53081.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 12 Jun 2008 17:40:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/13/53081.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/53081.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/13/53081.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/53081.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/53081.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 1：开发将椭圆、贝塞尔曲线以及文字转换成多边形的工具<br><br>&nbsp;&nbsp;&nbsp; 2：解决多边形的布尔运算，有并集、交集和余集等<br><br>&nbsp;&nbsp;&nbsp; 3：使用2开发画笔<br><br>&nbsp;&nbsp;&nbsp; 4：开发画刷基础，实现Color Matrix、Vertex Transformation及多边形渲染<br><br>&nbsp;&nbsp;&nbsp; 5：图像工具
<img src ="http://www.cppblog.com/vczh/aggbug/53081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-13 01:40 <a href="http://www.cppblog.com/vczh/archive/2008/06/13/53081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>椭圆段扫描完成</title><link>http://www.cppblog.com/vczh/archive/2008/06/12/53057.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 12 Jun 2008 14:02:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/12/53057.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/53057.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/12/53057.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/53057.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/53057.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     终于完成了相当于GDI中Arc函数的功能了。这次仍然跟API有点误差，不多这里的误差是GDI的问题。这里贴出截图和代码。观看图2和图3，我们知道椭圆是对称的，但是GDI并没有做到这一点。我的算法也不能精确对称，但是左右两边仅相差1个像素。Arc是椭圆的子集，所以Arc在这个局部（椭圆的最上方）中也应该左右对称。图1中我先用GDI绘制黑色Arc，然后使用我的算法绘制红色Arc。这里的自适应步长算法跟上一篇的Bezier曲线的算法是一样的。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/06/12/53057.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/53057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-12 22:02 <a href="http://www.cppblog.com/vczh/archive/2008/06/12/53057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自适应步长Bezier曲线扫描</title><link>http://www.cppblog.com/vczh/archive/2008/06/12/53000.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Thu, 12 Jun 2008 05:20:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/12/53000.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/53000.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/12/53000.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/53000.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/53000.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     花了两个小时把这个东西做好了。虽然不及[LIEN87 ; SHAN87 ; SHAN89]论文厉害，不过自己弄的这个写起来倒是相当容易的。在这里贴出效果图和代码。效果图中，我先使用蓝色画笔，用PolyBezier绘制曲线，然后使用红色像素使用自己的算法绘制曲线。可以看见有一点点误差，不过效果还是可以接受的。代码仍然使用自己的那套库开发，不过曲线扫描的方法不受库的限制。这个算法保证点不会被重复绘制。<br><br>    有了这个算法之后我就可以把贝塞尔曲线转换成密度刚好的折线了。这才是最终目的。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/06/12/53000.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/53000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-12 13:20 <a href="http://www.cppblog.com/vczh/archive/2008/06/12/53000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>终于提取到了TrueType字体的轮廓了</title><link>http://www.cppblog.com/vczh/archive/2008/06/11/52949.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Wed, 11 Jun 2008 15:48:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/06/11/52949.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/52949.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/06/11/52949.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/52949.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/52949.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     为了让这篇文章说的东西能够落实，无法躲避的基本东西还是要先准备一下的。今天花了6个小时查了无数资料终于把文字的边框弄出来了。<br><br>    在此贴出代码和效果图，不作过多解释。熟悉Win32API中的GDI部分的朋友们可以很容易看懂。<br><br>    效果图：<br>    提取的轮廓：红色和黑色为直线，蓝色为四次贝塞尔曲线。其中上面是先TextOut后自己画，下面是先自己画后TextOut。四次贝塞尔曲线转换成三次贝塞尔曲线之后使用PolyBezier绘制。<br><br>    代码：<br>    代码使用的框架是我自己寒假无聊的时候封装API的结果，暂时有窗口、菜单、组合键以及菜单，附带GDI。事件自己弄了一个跟C#差不多的可以同时Bind很多不同种类函数的东西。不过这个不是重点。需要重点阅读的是如何使用GetGlyphOutline。<br><br>    dtof将double转换成FIXED，ftod相反。<br>    GetPoint进行点的变换，主要是因为画字符的时候需要偏移。<br>    DrawCurve绘制边框。&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/06/11/52949.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/52949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-06-11 23:48 <a href="http://www.cppblog.com/vczh/archive/2008/06/11/52949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>