自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 基于进程池的半同步\半异步服务器

processpoll.h#ifndef PROCESSPOOL_H#define PROCESSPOOL_H#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#i

2021-05-24 16:56:37 97 1

原创 计算几何:点的定位和梯形图实现

上一篇博客对梯形图算法进行了介绍,并对具体需要的数据结构进行了介绍和定义。本次将具体的实现该算法。首先需要生成一般性点集。一般性点集其实只需要保证不存在相交线段即可。且由于我使用float浮点数记录点的坐标,几乎不可能存在线段共点的情况,也不可能存在斜率无穷大的情况。这就避免了一些退化情况。下面是生成随机一般性线段集的函数void Trapezoidalmap::General_random_Line(int num)//生成随机的一般性线段集{ srand(time(0)); //

2020-12-19 20:39:38 1030 2

原创 计算几何:点的定位和梯形图

本次主要实现计算几何算法与应用这本书上第六章:点的定位上面介绍的一些算法首先明确什么是梯形图。对梯形图最直观的理解就是区域划分,即将某个区域划分为一个个梯形。下图就是一个典型的梯形图。通过多条线段将整个区域划分为一个个小的梯形。6.1节介绍了一个较为简单的构建梯形图的算法。该算法为一种扫描线算法,通过从左往右扫描,每当碰到线段的端点就停下,从线段的端点向上下发出射线,直到碰到某条线段停止。该算法经过一次扫描就可以画出完整的梯形图。但是该算法存在问题,即只能得到用于显示的线段。若想要知道某一个梯形四条

2020-12-19 19:01:26 1376 1

原创 计算几何:基于Delauany三角剖分构建Voronoi图

上篇博客中给出了Delauany三角剖分的实现算法,并留下了一个问题:如何根据Delauany三角剖分的结果重构网格之间的拓扑关系,构建完整的半边数据结构。下面给出半边的定义:struct Line{ Point* Origin; Line* Twin; Line* Next; Line* Prev; Triangle* belong_face; Line() { Origin = nullptr; Twin = nullptr; Next = nullptr; Prev

2020-12-16 23:24:20 736

原创 计算几何:Delaunay三角剖分实现

上一篇博客给出了具体的数据结构与算法的伪代码,下面给出具体的实现首先给出结构体的定义文件:#pragma once#include <vector>using namespace std;struct Point;struct Edge;struct Triangle;bool IsInTriangle(Point* point, Triangle* triangle);bool IsInTriangle_Out_circle(Point* point, Triangle*

2020-12-16 22:26:58 496

原创 计算几何:Voronioi图与Delaunay三角剖分的学习与实现

这里写自定义目录标题本次主要介绍的内容什么是Voronoi图构建Voronoi图的算法什么是Delauany三角剖分本次主要介绍的内容这篇博客主要会对Voronioi图与Delaunay三角剖分的概念进行描述,并给出构建Voronioi图和Delaunay三角剖分的伪代码,同时分析其复杂度。什么是Voronoi图Voronioi图起源于这样一个话题:在一个城市中有多个超市,现在需要建立一个模型,用于描述城市中的人们如何选择采购地点。为了简化模型,先假设人们按照去最近的采购地点进行采购的原则构建模型。

2020-12-16 15:31:53 655

原创 计算几何学:线段求交扫描线算法(改进版)

在上一篇博客中我初步实现了扫描线求交算法,但是经检验,法线存在不少的交点是不能够被检测到的。本周我对于上一篇博客中实现的算法进行了详细的分析,找到了算法失效的原因,并实现了改进版,在新的改进版中没有致命的逻辑错误,但是因为我使用的是浮点数,并且在处理过程中引入了一些误差,在某些非常特殊的情况下,算法可能会失效,但在大部分情况下算法都是能准确的找出交点的。首先分析以下上一篇博客中实现的算法失效原因进行分析:该扫描线算法需要两个数据结构:优先队列和搜索树。搜索树中储存目前和扫描线相交的所有线段,并且这些线段

2020-07-10 11:35:29 1837 3

原创 计算几何2:扫描线线段求交算法

相比于上一篇中介绍的求凸包算法,本次介绍的扫描线线段求交算法的实现难度明显更高,实际上最终本人也未能完美的实现该算法,下面给出的版本经测试是存在一些问题的。首先介绍一下扫描线算法的基本原理,具体内容的讲解可以参考下面的链接:链接: link.实现该算法的主要障碍在于对三种不同事件点的处理:线段上端点、线段下端点、线段交点。下面介绍一下对于这三种事件点的处理方式:在线段上端点需要在查询树种引入一条新的线段,故此需要找到该新线段的左右邻居,并检查新插入的线段与其左右邻居是否存在交点。在线段的下端点需

2020-07-05 22:57:47 1565 1

原创 计算几何学1-Graham凸壳算法实现

Graham凸壳算法实现作为本学期计算机和课程开篇第一章的内容,该算法并不复杂,不多介绍,直接放出伪代码。图片:针对该算法,写了一个随机生成平面点的算法和复现了该算法,代码如下:#include <iostream>#include <vector>#include <time.h>#include <string>#include <fstream>#include <algorithm>using namespa

2020-07-04 12:05:03 981

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除