如果X和Y是坐标,则行和列是什么?

时间:2019-05-09 14:29:09

标签: javascript overloading naming-conventions naming

我正在编写一个基于小图块的游戏,并且很难决定我应该使用哪种语言来最好地尽可能简单地描述一些功能。我希望我的函数名称能够表达该函数的功能,而又不必使其过长。这是我的问题:

这些函数在给定点的x和y坐标的情况下计算图块地图中的行和列位置。

var tile_width  = 32;
var tile_height = 32;

function getColumnFromX(x) { return Math.floor(x / tile_width); }

function getRowFromY(y) { return Math.floor(y / tile_height); }

如您所见,这些功能非常具有表现力。您知道一个获取了x所在的映射中的列位置,另一个获取了y所在的映射中的行位置。问题是我不需要两个函数来执行此操作,因为tile_widthtile_height具有相同的值。

所以我真正拥有的是:

var tile_size = 32;

function getColumnOrRowFromXOrY(x_or_y) { return Math.floor(x_or_y / tile_size); }

该名称太长且笨拙,并且getColumnOrRowCenterFromColumnOrRow之类的其他功能也不可接受,即使它们的名称准确描述了正在执行的操作。

我未完成的解决方案是用自己的描述性词替换ColumnOrRowXOrY。在逻辑上可以将XOrY替换为Coordinate,但是我不知道该用ColumnOrRow替换什么。

我的问题是,什么是列和行?如果x和y是坐标,则列和行是什么?我知道它们是网格坐标,但是复合词有点无法简化名称。

知道描述性单词可以将上面的函数名称转换为:

function getWordFromCoordinate(coordinate) { /* ... */ }

Word是描述列和行的词。

这个问题的核心是想知道哪个英语单词可以用数学上准确的方式描述行或列。

了解数据库表的解剖结构可能会有所帮助,但是我发现在线没有太多用处。而且,JavaScript不支持函数重载的事实使使用略有不同的参数执行相同操作的命名函数变得更加乏味。

1 个答案:

答案 0 :(得分:0)

我在这里找到一个令人满意的名字:Grid Track Concept - W3C

根据W3C建议,“网格跟踪是网格列或网格行的通用术语...”

您可以在此处了解有关网格轨道的更多信息:Grid Tracks - MDN

“跟踪”从逻辑上描述了网格的列或行。虽然该定义未在数学中使用,但用于描述CSS网格布局,并且可以满足我的目的。如果有人知道一个更好的词来对列和行进行分类,请随时发表评论。