简介

快速用库的方式得到交点

参考链接

https://blog.csdn.net/OOFFrankDura/article/details/82430434

code

//山东大学 计算机基地Frankdura
//2018.9.4
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/intersections.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel K;
typedef K::Point_3 Point_3;
typedef K::Segment_3 Segment_3;
typedef K::Plane_3 Plane_3;
typedef K::Intersect_3 Intersect_3;
int main()
{
Segment_3 seg(Point_3(0,0,0), Point_3(2,2,0));
Segment_3 lin(Point_3(1,2,0), Point_3(1,0,0)); CGAL::cpp11::result_of<Intersect_3(Segment_3, Segment_3)>::type
result = intersection(seg, lin);
if (result) {
if (const Segment_3* s = boost::get<Segment_3>(&*result)) {
std::cout << *s << std::endl;
} else {
const Point_3* p = boost::get<Point_3 >(&*result);
std::cout << (*p) << std::endl;
}
}
return 0;
}
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/intersections.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel K;
typedef K::Point_3 Point_3;
typedef K::Segment_3 Segment_3;
typedef K::Plane_3 Plane_3;
typedef K::Intersect_3 Intersect_3;
int main()
{
Segment_3 seg(Point_3(0,0,0), Point_3(4,4,4));
Plane_3 lin (Point_3(1,0,0),Point_3(0,1,0),Point_3(0,0,1));
CGAL::cpp11::result_of<Intersect_3(Segment_3, Segment_3)>::type
result = intersection(seg, lin);
if (result) {
if (const Segment_3* s = boost::get<Segment_3>(&*result)) {
std::cout << *s << std::endl;
} else {
const Point_3* p = boost::get<Point_3 >(&*result);
std::cout << (*p) << std::endl;
}
}
return 0;
}

附赠Makefile

LOCAL_LIBRARY +=  -L/home/ling/lee/lib/cgal/dyna
LOCAL_LDFLAGS += -lm -lpthread -ldl -lCGAL_Core -lCGAL_ImageIO -lCGAL -lgmp -lmpfr
LOCAL_CFLAGS += -I/home/ling/lee/include
CC := g++ -g -std=c++17
TARGETS1 = genCube2
SRCS1 = main2.cc
OBJS1 = $(patsubst %.cc, %.o, $(SRCS1)) CFLAGS += $(LOCAL_CFLAGS)
LDFLAGS += $(LOCAL_LIBRARY) $(LOCAL_LDFLAGS) $(info $(OBJS))
$(info $(TARGETS)) all: $(TARGETS1) $(TARGETS1):$(OBJS1)
$(CC) -o $@ $^ $(LDFLAGS) $(CFLAGS) $(OBJS1): %.o:%.cc
$(CC) -c $< -o $@ $(CFLAGS) clean :
@rm -rf $(TARGETS1) $(OBJS1) #.SUFFIXES:
.PHONY : all clean

cgal 线面相交,线线相交的更多相关文章

  1. Codeforces Round #524 (Div. 2) C. Masha and two friends 几何:判断矩形是否相交以及相交矩形坐标

    题意 :给出一个初始的黑白相间的棋盘  有两个人  第一个人先用白色染一块矩形区域 第二个人再用黑色染一块矩形区域 问最后黑白格子各有多少个 思路:这题的关键在于求相交的矩形区间 给出一个矩形的左下和 ...

  2. 矢量图面层和线层相交得到相交后的线层文件(gis相交)

    目的:将arcgis里的面层和线层相交(重叠)部分的线单独生成一个shp文件,用于道路路网密度计算等. 注意:进行相交运算后生成的是线要素文件,相当于把面线相交部分的线单独拿了出来. 操作例子:将图示 ...

  3. hdu 5120 Intersection (圆环面积相交->圆面积相交)

    Problem Description Matt is a big fan of logo design. Recently he falls in love with logo made up by ...

  4. [算法]检测空间三角形相交算法(Devillers & Guigue算法)

    #pragma once //GYDevillersTriangle.h /* 快速检测空间三角形相交算法的代码实现(Devillers & Guigue算法) 博客原地址:http://bl ...

  5. poj 1556 (Dijkstra + Geometry 线段相交)

    链接:http://poj.org/problem?id=1556 The Doors Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  6. poj 1066 线段相交

    链接:http://poj.org/problem?id=1066 Treasure Hunt Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  7. POJ 3304 Segments (直线和线段相交判断)

    Segments Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7739   Accepted: 2316 Descript ...

  8. POJ1556 The Doors [线段相交 DP]

    The Doors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8334   Accepted: 3218 Descrip ...

  9. POJ 3304 Segments (叉乘判断线段相交)

    <题目链接> 题目大意: 给出一些线段,判断是存在直线,使得该直线能够经过所有的线段.. 解题思路: 如果有存在这样的直线,过投影相交区域作直线的垂线,该垂线必定与每条线段相交,问题转化为 ...

  10. POJ 2546 Circular Area(两个圆相交的面积)

    题目链接 题意 : 给你两个圆的半径和圆心,让你求两个圆相交的面积大小. 思路 : 分三种情况讨论 假设半径小的圆为c1,半径大的圆为c2. c1的半径r1,圆心坐标(x1,y1).c2的半径r2,圆 ...

随机推荐

  1. 在 Go 中,如何实现一个带过期时间的字典映射

    有些时候,应用系统用不上 redis,我们也可以用锁和 goroutine 实现一个带有过期时间的线程安全的字典. 这种字典的应用场景,比较倾向于数据规模较小,没有分布式要求. 下面是实现: 1.定义 ...

  2. 通过引用实现php无限极分类

    /** * 递归加引用实现无限极分类 * @param $items * @return array */ public function getTree2($items) {   $array = ...

  3. Java编程--设计模式之装饰者模式

    目录 装饰者模式 简介 做馒头实例 生产汽车实例 常见使用 装饰者模式 简介 装饰者模式的主要功能就是对一个类的功能进行扩充! 对于需要对某个类扩充,但是该类是final类,不能被继承,这是时候可以用 ...

  4. 基于Kubernetes可扩展的Selenium 并行自动化测试部署及搭建(2)——Win10环境下Kubernetes(k8s)部署

    继续上一篇,本篇进行K8S环境部署. K8s部署: 1.  访问k8s-for-docker-desktop 的github地址: https://github.com/AliyunContainer ...

  5. html_py

    Sock.py import socket def handle_request(client):     buf=client.recv(1024)     client.send(bytes(&q ...

  6. 网络编程:阻塞I/O和线程模型

    线程 进程模型在处理用户请求的过程中,进程切换上下文的代价比较高,而,一种轻量级的模型可以处理多用户连接请求,那就是线程模型. 线程(thread)是运行在进程中的一个"逻辑流", ...

  7. C++ ADL 与 模板

    什么是ADL ADL(Argument Dependent Lookup),参数依赖查找,明确的意思是依赖参数的函数查找,即对于函数调用,不仅会依照常规的名称查找规则,还会在函数参数所在的命名空间内查 ...

  8. 1、Java相关工具下载及准备

    相关准备 oracle jdk8:oracle官网. IDEA:官网 Maven:官网,下第二个 Redis:windows, MySQL:官网归档, RabbitMQ:csdn Java环境配置 变 ...

  9. 【语义分割专栏】:FCN实战篇(附上完整可运行的代码pytorch)

    目录 前言 FCN全流程代码 模型搭建(model) 数据处理(dataloader) 评价指标(metric) 训练流程(train) 模型测试(test) 效果图 结语 前言 FCN原理篇讲解:[ ...

  10. WebSocket 与 SSE 对比:即时通信的选择(一)

    在现代 Web 开发中,实时通信需求越来越多,比如聊天应用.实时通知.直播弹幕.股票行情推送等.实现这些需求的常见技术有 WebSocket 和 SSE(Server-Sent Events),但它们 ...