You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已实现嵌套顶点表按x排序,如何排序一维结构顶点表?

一维顶点表按x值排序的实现方案

两种顶点表结构

  • 表中表结构(已实现按x值排序):

    verts = { {x,y}, {x,y}, {x,y} }
    

    对应的排序代码:

    table.sort(verts, function(a,b)
        return a[1] < b[1]
    end)
    
  • 一维结构(需实现相同排序逻辑):

    verts = { x1,y1, x2,y2, x3,y3, ... }
    

实现思路及代码

由于一维数组中每个顶点的x和y是成对连续存储的,直接对单个元素排序会破坏x与y的对应关系,因此需要先将一维数组转换为表中表结构,利用已有的排序逻辑处理后,再转回一维数组:

-- 1. 将一维顶点表转换为表中表结构
local temp_table = {}
for i = 1, #verts, 2 do
    table.insert(temp_table, {verts[i], verts[i+1]})
end

-- 2. 按x值从小到大排序(复用已有逻辑)
table.sort(temp_table, function(a, b)
    return a[1] < b[1]
end)

-- 3. 将排序后的表中表转回一维结构
verts = {}
for _, vertex in ipairs(temp_table) do
    table.insert(verts, vertex[1])
    table.insert(verts, vertex[2])
end

说明

这段代码通过中间临时表完成结构转换,既复用了你已有的排序逻辑,又保证了每个顶点的x和y始终配对,最终得到按x值排序后的一维顶点表。

内容的提问来源于stack exchange,提问作者Bigfoot71

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:42:02