我在这里画了巨大的空白。
我发现的一切都是关于从给定的行和列获取索引,但是如何从索引中获取行和列?
行很简单:(int)(index / width)
。
我的大脑在试图计算色谱柱时遭受了大量的流血。
对我感到羞耻。
答案 0 :(得分:33)
对于从零开始的索引,这两个操作是:
row = (int)(index / width)
column = index % width
我在这里使用%
因为我是C家伙,虽然你没有指定你的语言,但它看起来肯定是基于C语言的。
如果你的问题不属于C或其兄弟,那么它将是你的特定环境的模运算符,剩下的就是index
除以{{{ 1}}。
如果您没有拥有模数运算符,则可以使用:
width
答案 1 :(得分:8)
Paxdiablo的答案是对的。如果有人需要反向流程来从行和列获取索引:
index = (row * width) + column
答案 2 :(得分:1)
雨燕4
typealias ColumnRowType = (column:Int, row:Int)
func indexToColumnRow(index:Int, columns:Int) -> ColumnRowType
{
let columnIndex = (index % columns)
let rowIndex = /*floor*/(index / columns) // we just cast to an `Int`
return ColumnRowType(columnIndex, rowIndex)
}
答案 3 :(得分:0)
在Java中,列偏移量为1,这是一种实现方法
int offset=1;
column = Math.floorDiv(location-offset , 3)+offset;
row = ( (location-offset) %3 )+offset ;