首页 > 其他分享 >基于凸多边形离散点排序的研究

基于凸多边形离散点排序的研究

时间:2023-10-11 20:47:25浏览次数:29  
标签:_. res 凸多边形 离散 item vertices1 var 排序 centerPoint

  OrderBy() {
    var vertices1 = _.cloneDeep(this.polygon);
    var xArray = vertices1.map((item) => item.x);

    var yArray = vertices1.map((item) => item.y);

    const [minX, maxX, minY, maxY] = [_.min(xArray), _.max(xArray), _.min(yArray), _.max(yArray)];

    //拿到原点坐标
    const centerPoint = new Point(
      ((minX || 0) + (maxX || 0)) * 0.5,
      ((minY || 0) + (maxY || 0)) * 0.5,
    );
    // console.log('centerPoint');
    // console.log(centerPoint)
    // console.log('centerPoint');
    var res: PointWidthArc[] = vertices1.map((item) => {
      var oax = item.x - centerPoint.x;
      var oay = item.y - centerPoint.y;
      var arc = Math.atan2(oay, oax);
      return new PointWidthArc(item.x, item.y, arc);
    });

    res.sort((a, b) => {
      return a.Arc - b.Arc;
    });

    return res;
  }

js代码奉上

 

标签:_.,res,凸多边形,离散,item,vertices1,var,排序,centerPoint
From: https://www.cnblogs.com/sexintercourse/p/17758132.html

相关文章

  • python列表中的元素按照自身某个索引的元素排序
    title:aliases:-python列表按元素排序tags:-Python/数据处理category:stars:url:creation-time:2023-07-3115:26modification-time:#!/usr/bin/python#-*-coding:UTF-8-*-#获取列表的第二个元素deftakeSecond(elem):returnelem[1]#列表r......
  • rust HashMap 排序
    按照key和value升序、降序、自定义排序示例usestd::collections::HashMap;usestd::cmp::Ordering;fnmain(){letmutdf=HashMap::new();forxin5..=12{letk=format!("key_{}",x);letv=format!("value_{}",x);......
  • pprint打印排序后的字典
    目的是为了控制台打印的好看一点打印内容为已经排序好的字典pprint不指定sort_dicts=False,会按字典的key排序测试如下frompprintimportpprintmy_dict={'d':16,'e':22,'a':16,'测试':2}sorted_dict=dict(sorted(my_dict.items(),key=lambdaitem:item[1]......
  • 归并排序 nO(lgn) 审核中
    大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常开发中常用的算法,并结合实际的应用场景,真正的感受算法的魅力。代码已经上传gith......
  • set通过operator <去重、排序
    如何定义类的operator<以保证set去重、有序STL自定义比较器的要求是必须为严格弱序,因为STL内部就是这样做的。x<x为假(反自反)x<y为真则y<x为假(反对称)x<y且y<z则x<z(传递性)x<y为假且y<x为假,y<z为假且z<y为假,则x<z为假且z<x为假(不可比的传递性)如果两......
  • 拓扑排序学习笔记
    拓扑排序-oiwiki在有向无环图中,若一个由该图中所有点构成的序列满足:图中所有边(x,y),x在序列A中都出现在y前,则称A是该图的一个拓扑序。求解序列A的过程就叫拓扑排序。拓扑排序可以解决一个有向无环图的所有节点排序。我理解的话,就是按每个店的入度多少的顺序找到一......
  • SQLAlchemy学习-12.查询之 order_by 按desc 降序排序
    前言sqlalchemy的query默认是按id升序进行排序的,当我们需要按某个字段降序排序,就需要用到order_by。order_by排序默认情况下sqlalchemy的query默认是按id升序进行排序的res=session.query(Project).all()print(res)#[<Project(id='1',project_name='string'.........
  • Python 常见排序:冒泡、选择、快速
    简单说明:1.冒泡排序:双层循环,交替结果2.选择排序:whilenums,假设第一个值为做小,通过for循环找到最小值以此来替换,再将nums中该值去掉继续上述步骤3.快速排序:定义一个初值,把整个数据列表分为两部分,再递归代码实现:#冒泡排序defaction1(n):foriinrange(len(n)):......
  • 归并排序
    一、算法描述归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。思路如下:取分界点,intmid=(l+r)/2......
  • FAST角点检测离散圆形扫描
    FAST角点检测离散圆形扫描目的是扫描离散圆内所有点,计算灰度质心,过程为小半径到大半径极坐标形式扫描,最终如下,对圆内所有坐标进行扫描代码:clcclearallcloseall%%初始化参数%正方形绘图边长Side=11;%当前扫描坐标current=zeros(1,2);%上次坐标last=zero......