当前位置: 首页 > wzjs >正文

如何做电影网站资源深圳制作网站服务

如何做电影网站资源,深圳制作网站服务,wordpress 主分类,临沂营销网站建设Circular_kernel_2 是 CGAL (Computational Geometry Algorithms Library) 中的一个二维圆形几何内核,它扩展了基本的内核功能,支持对圆弧和圆的操作。下面我将介绍如何使用这个内核。 基本概念 Circular_kernel_2 结合了线性几何(线段、直线…

Circular_kernel_2 是 CGAL (Computational Geometry Algorithms Library) 中的一个二维圆形几何内核,它扩展了基本的内核功能,支持对圆弧和圆的操作。下面我将介绍如何使用这个内核。

基本概念

Circular_kernel_2 结合了线性几何(线段、直线等)和圆形几何(圆、圆弧等)的功能。它需要两个模板参数:

  1. 一个线性内核(如 Exact_predicates_exact_constructions_kernel)
  2. 一个代数内核(如 Algebraic_kernel_for_circles)

常用类型定义

#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Circular_kernel_2.h>
#include <CGAL/Algebraic_kernel_for_circles_2_2.h>// 定义线性内核
typedef CGAL::Exact_predicates_exact_constructions_kernel Linear_k;// 定义代数内核
typedef CGAL::Algebraic_kernel_for_circles_2_2<Linear_k::FT> Algebraic_k;// 定义圆形内核
typedef CGAL::Circular_kernel_2<Linear_k, Algebraic_k> Circular_k;// 常用类型简写
typedef Circular_k::Point_2 Point_2;
typedef Circular_k::Circle_2 Circle_2;
typedef Circular_k::Line_2 Line_2;
typedef Circular_k::Circular_arc_2 Circular_arc_2;

基本操作示例

1. 创建点和圆

Point_2 p1(1, 0);
Point_2 p2(0, 1);
Point_2 p3(-1, 0);// 通过三个点创建圆
Circle_2 circle(p1, p2, p3);// 通过圆心和半径创建圆
Point_2 center(0, 0);
Circle_2 circle2(center, 4); // 半径为4的圆

2. 创建圆弧

// 通过三个点创建圆弧(从p1经p2到p3)
Circular_arc_2 arc(p1, p2, p3);// 通过圆、起点和终点创建圆弧
Circular_arc_2 arc2(circle, p1, p3);

3. 计算交点

Circle_2 c1(Point_2(0,0), 4); // 圆心(0,0),半径2
Circle_2 c2(Point_2(2,0), 4); // 圆心(2,0),半径2std::vector<CGAL::Object> intersections;
CGAL::intersection(c1, c2, std::back_inserter(intersections));for(const auto& obj : intersections) {if(const Point_2* point = CGAL::object_cast<Point_2>(&obj)) {// 处理点交点} else if(const Circular_arc_2* arc = CGAL::object_cast<Circular_arc_2>(&obj)) {// 处理圆弧交点}
}

4. 判断点与圆的关系

Point_2 test_point(1, 1);
CGAL::Bounded_side side = circle.bounded_side(test_point);if(side == CGAL::ON_BOUNDED_SIDE) {// 点在圆内
} else if(side == CGAL::ON_BOUNDARY) {// 点在圆上
} else {// 点在圆外
}

高级应用

圆弧多段线

#include <CGAL/Circular_arc_point_2.h>
#include <CGAL/Circular_arc_2.h>
#include <vector>std::vector<Circular_arc_2> arcs;
arcs.push_back(Circular_arc_2(p1, p2, p3));
arcs.push_back(Circular_arc_2(p3, Point_2(0,-1), p1));// 可以对这些圆弧进行各种操作

精确计算

Circular_kernel_2 支持精确计算,这对于处理圆和圆弧的几何问题非常重要:

// 精确计算两个圆的交点
Circle_2 c3(Point_2(0,0), 1);
Line_2 line(Point_2(-1,-1), Point_2(1,1));std::vector<CGAL::Object> line_circle_ints;
CGAL::intersection(c3, line, std::back_inserter(line_circle_ints));// 结果将是精确的,即使交点的坐标是无理数

注意事项

  1. Circular_kernel_2 的计算通常比线性内核更耗时,因为它需要处理更复杂的代数运算
  2. 对于纯线性几何问题,使用基本内核可能更高效
  3. 圆形内核支持精确构造和谓词,这对于稳健的几何算法非常重要

完整示例

#include <iostream>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Circular_kernel_2.h>
#include <CGAL/Algebraic_kernel_for_circles_2_2.h>typedef CGAL::Exact_predicates_exact_constructions_kernel Linear_k;
typedef CGAL::Algebraic_kernel_for_circles_2_2<Linear_k::FT> Algebraic_k;
typedef CGAL::Circular_kernel_2<Linear_k, Algebraic_k> Circular_k;typedef Circular_k::Point_2 Point_2;
typedef Circular_k::Circle_2 Circle_2;
typedef Circular_k::Circular_arc_2 Circular_arc_2;int main() {// 创建三个点Point_2 p1(1, 0);Point_2 p2(0, 1);Point_2 p3(-1, 0);// 创建圆和圆弧Circle_2 circle(p1, p2, p3);Circular_arc_2 arc(p1, p2, p3);// 创建另一个圆Circle_2 circle2(Point_2(2,0), 1);// 计算交点std::vector<CGAL::Object> intersections;CGAL::intersection(circle, circle2, std::back_inserter(intersections));std::cout << "Intersections found: " << intersections.size() << std::endl;return 0;
}

Circular_kernel_2 提供了强大的功能来处理涉及圆和圆弧的二维几何问题,是CGAL中处理圆形几何的重要工具。


文章转载自:

http://ooLP364u.xffns.cn
http://jv8rofWm.xffns.cn
http://J5L3YwAK.xffns.cn
http://vVcVC3w3.xffns.cn
http://NrXBTihh.xffns.cn
http://rTlFw8ht.xffns.cn
http://I7QPL28x.xffns.cn
http://JVYMapfF.xffns.cn
http://VQdG1fSl.xffns.cn
http://jHc5yRGB.xffns.cn
http://JRWtLsn8.xffns.cn
http://QQA0sCBl.xffns.cn
http://Tpvjphgo.xffns.cn
http://MVNBojRm.xffns.cn
http://b6Uw82ex.xffns.cn
http://J6EgIAxn.xffns.cn
http://jPMKWqex.xffns.cn
http://bHnW91eg.xffns.cn
http://iqtCAr4k.xffns.cn
http://0wepCrsr.xffns.cn
http://FXvHVtIY.xffns.cn
http://GeS21EGr.xffns.cn
http://dsIKB0ov.xffns.cn
http://Aq2AuLqL.xffns.cn
http://RnPJ4Zxs.xffns.cn
http://MyKAOmyj.xffns.cn
http://aeMwm3Hq.xffns.cn
http://e5imgVpc.xffns.cn
http://X6v6ndiD.xffns.cn
http://QbXEO5uJ.xffns.cn
http://www.dtcms.com/wzjs/618472.html

相关文章:

  • 金华住房和城乡建设部网站唐山建设网站
  • 简单网站html模板下载地址活动营销推广方案
  • 东莞网站建设提供商上海服装集团网站建设
  • 网站干什么的wordpress店招部分如何设置
  • 网站逻辑结构哈尔滨营销型网站建设公司
  • 网站数据库文件名正邦网站建设 优帮云
  • 东莞做网站推广公司长春网站建设工作
  • 前端素材网站网站建设规模与类别
  • 江阴市住房和城乡建设局网站wordpress文件上传到那个文件
  • 下载爱城市网app官方网站wordpress个人介绍主题
  • 网站设置会员湖南省交通建设质量监督站网站
  • 北京网站建设著名公司模板图片 背景
  • 网站建设培训 上海移动插件WordPress
  • 邢台网站建设费用wordpress设置段落
  • 简单个人博客模板网站wordpress php设置
  • 怎样加快网站收录wordpress目录设置
  • 手机看网站网站建设广州天河
  • 怎么把自己电脑建设网站一起做英语作业网站
  • 字幕如何做模板下载网站网站模板文件在哪里下载
  • 中国大型网站好用的wordpress插件
  • 响应式网站广州网站建设国家653工程国家建筑工程网
  • 网站建设升级的必要性淘宝网站建设单子好接吗
  • 网站建设需要的手续河源seo
  • 大型服装网站开发泾川门户网
  • 南昌网站搜索排名网站合同需要注意什么呢
  • 越秀网站建设价格wordpress首页不显示最新文章
  • jn建站系统网吧网络维护公司
  • 两学一做网站进不去wordpress主题开发编辑器
  • 广东地区建网站的公司有谁用2008做网站服务器
  • 泉州网站建设企业什么样的笔记本电脑适合网站开发