算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,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? = null

    for (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.x
    val dy = p2.y - p1.y
    return 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

相关推荐
AndrewHZ43 分钟前
【图像处理基石】什么是油画感?
图像处理·人工智能·算法·图像压缩·视频处理·超分辨率·去噪算法
.格子衫.44 分钟前
015枚举之滑动窗口——算法备赛
数据结构·算法
J先生x2 小时前
【IP101】图像处理进阶:从直方图均衡化到伽马变换,全面掌握图像增强技术
图像处理·人工智能·学习·算法·计算机视觉
爱coding的橙子4 小时前
每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
算法·leetcode
橙子199110167 小时前
在 Kotlin 中什么是委托属性,简要说说其使用场景和原理
android·开发语言·kotlin
androidwork7 小时前
Kotlin Android LeakCanary内存泄漏检测实战
android·开发语言·kotlin
?abc!9 小时前
缓存(5):常见 缓存数据淘汰算法/缓存清空策略
java·算法·缓存
BioRunYiXue9 小时前
一文了解氨基酸的分类、代谢和应用
人工智能·深度学习·算法·机器学习·分类·数据挖掘·代谢组学
jiunian_cn10 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio
工藤新一¹11 小时前
蓝桥杯算法题 -蛇形矩阵(方向向量)
c++·算法·矩阵·蓝桥杯·方向向量