计算几何学习

news2024/12/24 2:46:22

凸包

凸组合, λ = < λ 1 , λ 1 , . . . , λ n > T \lambda = <\lambda_1,\lambda_1,...,\lambda_n>^T λ=<λ1,λ1,...,λn>T

其中 λ 1 + λ 2 + . . . + λ n = 1 \lambda_1+\lambda_2+...+\lambda_n = 1 λ1+λ2+...+λn=1,且 λ i ≥ 0 \lambda_i\ge0 λi0

凸包,充要条件所有极点不被包含到任何三角形。

极点,所有最外侧的点

InTriangle

三角形测试,判断点是否在一个三角形内。

伪代码

void extremePoint(Point s[],int n){
	for(int s = 0; s < n; s++) S[s].extreme = true;
    for(int p = 0; p < n; p++)
        for(int q = p+1; q < n ; q++)
            for(int r = q+1; r < n; r++)
                for(int s = 0 ; s < n ; s++){
                    if( s == p || s == q || s== r|| !S[s].extreme) continue;
                    if(InTriangle(S[p],S[q],S[r],S[s])){
                        S[s].extreme = false;
                    }
                }
}

naïve 版本, O ( n 4 ) O(n^4) O(n4)

toLeft

判断点是否在向量的左侧或右侧

在这里插入图片描述

在三角形内,当且仅当点在三条边的左侧。

bool ToLeft(Point p, Point q, Point s)
    return Area2(p,q,s) > 0;

int Area2(Point p, Point q, Point s)
    return p.x * q.y - p.y * q.x
    + q.x * s.y - q.y * s.x
    + s.x * p.y - s.y * p.x;

极边

对凸包有贡献的边。

极边的判断,所有的点都在极边的左侧。

基于极边的判断算法,

Let EE = 空集
for each directed segment pq
	if points in S/{p,q} lie to the same side of pq then 
		let EE  = EE 并 {pq}

复杂度 O ( n ∗ ( n − 1 ) ∗ ( n − 2 ) ) O(n*(n-1)*(n-2)) O(n(n1)(n2))

void markEE(Point s[] ,int n){
    for(int k = 0 ; k < n ; k++)
        S[k].extreme = False;
    for(int p = 0; p < n ; p++){
        for(int q = p + 1 ; q < n ; q++){
            checkEdge(S,n,p,q);// 判断是否在边的一侧
        }
    }
}

void checkEdge(Point s[],int n , int p, int q){
    bool LEmpty = true, REmpty = true;
    for(int k  = 0; k < n && (LEmpty || REmpty) ; k++){
        if(k != p && k != q)
            ToLeft(S[p],S[q],S[k])?
            LEmpty = false : REmpty = false;
    }
    if(LEmpty || REmpty)
        S[p].extreme = S[q].extreme = true;
}

分治算法

典型例子,插入排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度解析 MintRich 独特的价格曲线机制玩法

随着 Meme 币赛道的迅速崛起&#xff0c;NFT 市场也迎来了新的变革。作为一个创新的 NFT 发行平台&#xff0c;Mint.Rich 正掀起一场全民参与的 NFT 热潮。其简易的操作界面和独特的价格曲线设计&#xff0c;让任何人都能以极低的门槛发行和交易自己的 NFT&#xff0c;从而参与…

多线程实现数据处理与打印分离

注意&#xff0c;结构体传入数据 一开始int* 不能变成void 传入int ** 也会失效&#xff0c; 只能一开始在message 结构体里有 int* 类型才能运行 这是通过打印表格得到的 使用raylib 开发 #include <raylib.h> #include <stdio.h> #include <math.h> #…

【零成本】七日杀 服务器搭建 异地联机 无需公网IP、服务器

主要内容 什么是七日杀 搭建前需要准备什么 详细步骤 1.Steam中下载七日杀服务器工具 2.修改七日杀服务配置文件 3.启动七日杀服务器应用 4.运行 MoleSDN 进行异地联机 5.小伙伴打开游戏加入 鼠鼠的服务器 什么是七日杀 《七日杀》是一款沙盒生存恐怖游戏&#xff0c;…

Linux shell编程学习笔记80:gzip命令——让文件瘦身

0 引言 在 Linux shell编程学习笔记76&#xff1a;tar命令——快照 & 备份&#xff08;上&#xff09;-CSDN博客 Linux shell编程学习笔记77&#xff1a;tar命令——快照 & 备份&#xff08;下&#xff09;_linux 系统快照-CSDN博客 Linux shell编程学习笔记78&am…

ai绘画文生图怎么制作?2024教你快速进行ai绘画

ai绘画文生图怎么制作&#xff1f;2024教你快速进行ai绘画 AI绘画技术的迅速发展&#xff0c;使得用户只需输入文本描述&#xff0c;就能生成符合要求的图像&#xff0c;这种“文生图”&#xff08;Text-to-Image&#xff09;功能使得绘画和创作变得简单、高效。以下是5款帮助…

Git提交有乱码

服务器提交记录如图 可知application.properties中文注释拉黄线 &#xff0c;提示Unsupported characters for the charset ISO-8859-1 打开settings - Editor - File Encodings 因为我们项目的其他文件都是UTF-8&#xff0c;所以&#xff0c;我们将默认值都改成UTF-8 然后…

【原创】java+springboot+mysql鲜花商城(花店)系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

用于遥感深度学习的7种高光谱遥感图像和标签

数据介绍 此数据集来自于GIC(GRUPO INTELIGENCIA COMPUTACIONAL )官网 直达链接&#xff0c;采用MATLAB存储为矩阵形式&#xff0c;数据集后缀为.mat形式。每一个数据分为原始图像数据和标签数据&#xff0c;标签对应码请参考官网。注&#xff1a;此数据为公开数据&#xff0c…

20240915 每日AI必读资讯

国家网信办发布《人工智能生成合成内容标识办法&#xff08;征求意见稿&#xff09;》 - 要求所有的AI生成内容都要打标&#xff0c;包括文字、图像、视频、音频… - 文本内容要插入标识符提醒&#xff0c;音频内容要在里面插入提示音 - 对创作者不太友好&#xff0c;对平台…

PHP民宿管理APP---附源码74921

摘 要 随着旅游业的蓬勃发展和人们对个性化旅行体验的追求&#xff0c;民宿行业正迅速崛起并受到广大游客的青睐。民宿不仅为游客提供了更加亲近自然、体验当地文化的机会&#xff0c;同时也为房东带来了可观的经济收益。然而&#xff0c;随着民宿市场的不断扩大&#xff0c;民…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月14日新模型预测第87弹

经过80多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;80多期一共只错了8次&#xff0c;这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c…

自动驾驶:LQR、ILQR和DDP原理、公式推导以及代码演示(四、LQG和iLQG篇)

&#xff08;四&#xff09;LQG和iLQG原理、公式推导以及代码演示 在实际工程应用中&#xff0c;噪声是系统无法避免的因素&#xff0c;主要包括过程噪声和观测噪声。在自动控制、机器人、自主驾驶等领域&#xff0c;噪声的影响尤其显著。为了提高控制系统的鲁棒性和性能&…

MIPI CSI 接口定义与协议层介绍

文章目录 Definitions and AcronymsCSI-2 BriefD-PHYC-PHYM-PHYCSI-2 Layer DefinitionsMulti-Lane Distribution and MergingMulti-Lane InteroperabilityProtocol LayerLow Level ProtocolPacket FormatLong Packet FormatWhat does D-PHY Long Packet look like?What does …

类的初始化列表

文章目录 一、初始化列表1、初始化列表的使用2、必须使用初始化列表来初始化的成员 二、类型转换1、内置类型转换自定义类型2、自定义类型转换自定义类型 三、静态成员变量(static)1、static修饰成员变量2、静态成员函数 四、友元五、类里面再定义类六、匿名对象1、匿名对象的使…

大厂硬件梦:字节、腾讯“向首”,华为、小米“向手”

涉足可穿戴设备的大厂们&#xff0c;都抱着再造用户入口的野望&#xff0c;大模型治不好的痼疾&#xff0c;仍需继续前行寻找解药。 转载&#xff1a;科技新知 原创 作者丨茯神 编辑丨蕨影 苹果发布会再次令网友失望&#xff01;相比iPhone新机配色丑上热搜&#xff0c;反而苹…

Type-C与PD技术融合:重塑移动硬盘盒的未来

Type-C接口与PD充电技术&#xff1a;移动硬盘盒的革新之路 在数字化浪潮的汹涌澎湃中&#xff0c;我们的生活与工作环境被各式各样的电子设备所包围。从智能手机到平板电脑&#xff0c;从笔记本电脑到高清显示器&#xff0c;每一个设备都在以惊人的速度迭代更新&#xff0c;推…

集运系统:让海外集运包裹管理更简单!

随着全球化贸易的快速发展&#xff0c;海外包裹代收、仓储管理、退换货、国际快递等服务需求日益增长。集运系统作为一种专为海外客户提供一站式服务的软件系统&#xff0c;通过整合物流信息、管理订单、跟踪货物等功能&#xff0c;有效满足这些需求。本文将介绍集运系统的功能…

Python数据类型详解:这12个类型你都知道吗?

在Python中&#xff0c;数据类型是编程的基石&#xff0c;它们定义了可以操作的数据的种类。Python是一种动态类型语言&#xff0c;意味着你不需要显式地声明变量的类型&#xff1b;Python解释器会自动推断出变量所存储数据的类型。Python提供了多种内置数据类型&#xff0c;这…

立足本土,面向全球 | 全视通闪耀亮相Medical Fair Asia新加坡医疗展

Medical Fair Asia是亚洲地区最大的医疗设备、医疗器械和医疗技术展览会之一&#xff0c;自1997年创办以来&#xff0c;每两年在新加坡举办一次。该展会不仅是新加坡医疗行业交流的龙头平台&#xff0c;也是亚洲乃至全球医疗企业和专业人士共聚一堂、展示最新产品和技术的重要舞…

人情债VS利息债:如何更好的借贷?

在人生的旅途中&#xff0c;谁不曾遭遇资金紧张的瞬间&#xff1f;面对这样的挑战&#xff0c;是向亲朋好友伸出援手&#xff0c;还是探索贷款之路&#xff0c;成为了一个值得深思的问题。今天&#xff0c;我们就以小刘的经历为镜&#xff0c;共同探讨这一话题。 故事的主角小刘…