算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin

本文主要是介绍算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin

 

const val THRESHOLD = 0.6f //距离小于这个点将被剔除。data class Point(val x: Float, val y: Float)fun removeNearbyPoint(points: List<Point>): List<Point> {val result = mutableListOf<Point>()var prevPoint: Point? = nullfor (point in points) {if (prevPoint == null || distance(prevPoint, point) > THRESHOLD) {result.add(point)prevPoint = point}}return result
}fun distance(p1: Point, p2: Point): Float {val dx = p2.x - p1.xval dy = p2.y - p1.yreturn kotlin.math.sqrt(dx * dx + dy * dy)
}fun main(args: Array<String>) {val points = listOf(Point(0.0f, 0.0f),Point(0.1f, 0.1f),Point(0.5f, 0.5f),Point(0.6f, 0.6f),Point(1.0f, 1.0f),Point(1.4f, 1.4f),Point(1.5f, 1.5f),Point(2.0f, 2.0f),Point(2.5f, 2.5f),Point(3.0f, 3.0f),Point(3.5f, 3.5f),Point(4.0f, 4.0f))val result = removeNearbyPoint(points)println("原来的点 ${points.size} : $points")println("处理的点 ${result.size} : $result")
}

 

原来的点 12 : [Point(x=0.0, y=0.0), Point(x=0.1, y=0.1), Point(x=0.5, y=0.5), Point(x=0.6, y=0.6), Point(x=1.0, y=1.0), Point(x=1.4, y=1.4), Point(x=1.5, y=1.5), Point(x=2.0, y=2.0), Point(x=2.5, y=2.5), Point(x=3.0, y=3.0), Point(x=3.5, y=3.5), Point(x=4.0, y=4.0)]
处理的点 9 : [Point(x=0.0, y=0.0), Point(x=0.5, y=0.5), Point(x=1.0, y=1.0), Point(x=1.5, y=1.5), Point(x=2.0, y=2.0), Point(x=2.5, y=2.5), Point(x=3.0, y=3.0), Point(x=3.5, y=3.5), Point(x=4.0, y=4.0)]
 

 

 

 

 

networkx节点2D网格,Python_networkx 绘制棋盘格_zhangphil的博客-CSDN博客文章浏览阅读883次。此种类型2D网格图,类似于棋盘等。import networkx as nximport matplotlib.pyplot as pltdef my_graph(): G = nx.grid_2d_graph(4, 4) pos = nx.spring_layout(G, iterations=100) # nrows=2,ncols=2,index=1 plt.subplot(2, 2, 1) nx.draw(G, pos, font_size=_networkx 绘制棋盘格https://blog.csdn.net/zhangphil/article/details/121150370

 

这篇关于算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/443517

相关文章

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

Kotlin运算符重载函数及作用场景

《Kotlin运算符重载函数及作用场景》在Kotlin里,运算符重载函数允许为自定义类型重新定义现有的运算符(如+-…)行为,从而让自定义类型能像内置类型那样使用运算符,本文给大家介绍Kotlin运算... 目录基本语法作用场景类对象数据类型接口注意事项在 Kotlin 里,运算符重载函数允许为自定义类型重

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各