<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.zhuzhugst.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.zhuzhugst.com/feed.php">
        <title>张叶安的博客 - 直骨架的研究</title>
        <description></description>
        <link>https://www.zhuzhugst.com/</link>
        <image rdf:resource="https://www.zhuzhugst.com/lib/exe/fetch.php?media=logo.png" />
       <dc:date>2026-04-22T00:27:25+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E8%BE%B9%E4%BA%8B%E4%BB%B6&amp;rev=1760513393&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90&amp;rev=1760669111&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E5%B0%84%E7%BA%BF%E6%B3%95&amp;rev=1760433902&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E9%9E%8B%E5%B8%A6%E5%85%AC%E5%BC%8F&amp;rev=1760431041&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:abstract&amp;rev=1758765269&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:computing_the_straight_skeleton&amp;rev=1758790417&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:introduction&amp;rev=1758765894&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.zhuzhugst.com/lib/exe/fetch.php?media=logo.png">
        <title>张叶安的博客</title>
        <link>https://www.zhuzhugst.com/</link>
        <url>https://www.zhuzhugst.com/lib/exe/fetch.php?media=logo.png</url>
    </image>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E8%BE%B9%E4%BA%8B%E4%BB%B6&amp;rev=1760513393&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-15T07:29:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>边事件</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E8%BE%B9%E4%BA%8B%E4%BB%B6&amp;rev=1760513393&amp;do=diff</link>
        <description>```cpp
void PSLGSSkeleton::handleEdgeEvent(PSLGEdge* event) {
sslog::Logf(3, L&quot;[EDGE] t=%.6f types=(%d,%d)&quot;, event-&gt;vanishTime, (int)event-&gt;tailvex-&gt;type, (int)event-&gt;headvex-&gt;type);
//����ñ��˻�Ϊһ����
if (event-&gt;headvex == event-&gt;tailvex) {//如果头尾的节点一样，则删除这个事件
	delete event-&gt;headvex;
	delete event;
	return;
}
//�����¶��������
QPointF collisionPoint = event-&gt;tailvex-&gt;movedPosition( event-&gt;vanishTime );
PSLGVertex* collisionvex = new PSLGVertex(collisionPoint, event-&gt;vanishTime); //边向内收缩时首次相遇的“交汇点”…</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90&amp;rev=1760669111&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-17T02:45:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>代码分析</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90&amp;rev=1760669111&amp;do=diff</link>
        <description>```cpp
#include “HDSkeleton_capi.h”
#include &lt;cmath&gt;

```
这是 C++ 的预处理指令（preprocessor directives）语法，用于在编译前由预处理器处理。

逐行解释：

这是用户自定义头文件的包含方式。

使用双引号 `</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E5%B0%84%E7%BA%BF%E6%B3%95&amp;rev=1760433902&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-14T09:25:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>射线法</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E5%B0%84%E7%BA%BF%E6%B3%95&amp;rev=1760433902&amp;do=diff</link>
        <description>```
 检查点是否在多边形内（射线法）
bool containsPoint(const Point2D&amp; point) const {
    if (size() &lt; 3) return false;
    
    int intersections = 0;
    int n = size();
    
    for (int i = 0; i &lt; n; ++i) {
        int j = (i + 1) % n;
        
        Point2D p1 = at(i);
        Point2D p2 = at(j);
        
        if</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E9%9E%8B%E5%B8%A6%E5%85%AC%E5%BC%8F&amp;rev=1760431041&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-14T08:37:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>鞋带公式</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:%E9%9E%8B%E5%B8%A6%E5%85%AC%E5%BC%8F&amp;rev=1760431041&amp;do=diff</link>
        <description>```
  // 计算面积（使用鞋带公式）
  double area() const {
      if (size() &lt; 3) return 0.0;
      
      double area = 0.0;
      int n = size();
      for (int i = 0; i &lt; n; ++i) {
          int j = (i + 1) % n;
          area += at(i).x * at(j).y;
          area -= at(j).x * at(i).y;
      }
      return std::abs(area) / 2.0;
  }</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:abstract&amp;rev=1758765269&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-25T01:54:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>abstract</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:abstract&amp;rev=1758765269&amp;do=diff</link>
        <description>The straight skeleton is a geometric structure that is similar to generalized Voronoi diagrams. Straight skeletons were introduced to the ﬁeld of computational geometry one and a half decades ago. Since then many industrial and academical applications emerged, such as the computation of mitered oﬀset curves, automatic roof construction, solving fold-and-cut problems and the reconstruction of surfaces, to name the most prominent ones. However, there is a signiﬁcant gap between the most eﬃcient st…</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:computing_the_straight_skeleton&amp;rev=1758790417&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-25T08:53:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>computing_the_straight_skeleton</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:computing_the_straight_skeleton&amp;rev=1758790417&amp;do=diff</link>
        <description>In order to make straight skeletons applicable in practice we seek an algorithm which is (i) easy to implement and (ii)exhibits an actual runtime that is relatively close to linear in the input size. Fortune started his introduction [For00] to the 27th volume of Algorithmica with the following words:</description>
    </item>
    <item rdf:about="https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:introduction&amp;rev=1758765894&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-25T02:04:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>introduction</title>
        <link>https://www.zhuzhugst.com/doku.php?id=%E7%9B%B4%E9%AA%A8%E6%9E%B6%E7%9A%84%E7%A0%94%E7%A9%B6:introduction&amp;rev=1758765894&amp;do=diff</link>
        <description>Assume we are given a simple1 polygon in the plane which constitutes the outer walls of a house in a ground plan. How can we automatically build a roof such that all faces of the roof have equal slope and no rain drop gets caught in a sink? Assume we are given a polygon with holes2 which is to be milled out with a numerically controlled machine (NC machine). How do we compute so-called oﬀset curves of the input such that sharp vertices of the input remain sharp for the oﬀset curve?3 Assume we ar…</description>
    </item>
</rdf:RDF>
