括号位置改变 OpenSimplex 产生噪声的结果
Parenthesis Position Changes Result of Noise Generation With OpenSimplex
这并不是真正的问题,因为我试图弄清楚为什么我的代码以某种方式工作。基本上,我正在尝试使用 OpenSimplex 制作一个二维随机网格。某些值范围被分配给某些单元格以形成 'biomes' 和小块资源。
最初,当我尝试使用随机生成来制作资源块时,我会将资源生成在一个圆圈的轮廓中而不是一个块中。
这是一张图片(黑色是有问题的资源):
所以,我决定尝试使用数学函数 tan,看看是否可行。它本身不起作用,但我犯了一个错误,将右括号放在了错误的位置。
这是结果的图片:
if math.tan(grid[row][column]['type']) <= -.8 and math.tan(grid[row][column]['type'] >= -.85):
color = black
'grid' 是所有单元格的列表,'row' 是单元格所在的行,'column' 是单元格所在的列。这是在一个for 循环遍历每个单元格并确定其值 ['type'](由 OpenSimplex 分配)并为其分配颜色。
我的问题是,为什么当括号像上面那样放错位置时(math.tan 括号扩展到运算符)代码会创建资源块,但是当括号像这样放置时却不能正常工作下面?
if math.tan(grid[row][column]['type']) <= -.8 and math.tan(grid[row][column]['type']) >= -.85:
color = black
我尝试更改 if 语句第一个条件的括号位置,但没有任何影响。
当你写:
math.tan(grid[row][column]['type'] >= -.85)
意思是计算grid[row][column]['type'] >= -.85
的值,然后计算它的正切。该表达式的值是 True
或 False
,但 math.tan()
要求其参数是一个数字。 True
等同于 1
,False
等同于 0
,因此它计算 math.tan(1)
或 math.tan(0)
取决于类型与-.85
.
顺便说一句,Python 允许你链接条件,所以如果你想测试它是否在两个数字之间,你不需要写两次表达式 math.tan(grid[row][column]['type'])
。
if -.85 <= math.tan(grid[row][column]['type']) <= -.8:
这并不是真正的问题,因为我试图弄清楚为什么我的代码以某种方式工作。基本上,我正在尝试使用 OpenSimplex 制作一个二维随机网格。某些值范围被分配给某些单元格以形成 'biomes' 和小块资源。
最初,当我尝试使用随机生成来制作资源块时,我会将资源生成在一个圆圈的轮廓中而不是一个块中。
这是一张图片(黑色是有问题的资源):
所以,我决定尝试使用数学函数 tan,看看是否可行。它本身不起作用,但我犯了一个错误,将右括号放在了错误的位置。
这是结果的图片:
if math.tan(grid[row][column]['type']) <= -.8 and math.tan(grid[row][column]['type'] >= -.85):
color = black
'grid' 是所有单元格的列表,'row' 是单元格所在的行,'column' 是单元格所在的列。这是在一个for 循环遍历每个单元格并确定其值 ['type'](由 OpenSimplex 分配)并为其分配颜色。
我的问题是,为什么当括号像上面那样放错位置时(math.tan 括号扩展到运算符)代码会创建资源块,但是当括号像这样放置时却不能正常工作下面?
if math.tan(grid[row][column]['type']) <= -.8 and math.tan(grid[row][column]['type']) >= -.85:
color = black
我尝试更改 if 语句第一个条件的括号位置,但没有任何影响。
当你写:
math.tan(grid[row][column]['type'] >= -.85)
意思是计算grid[row][column]['type'] >= -.85
的值,然后计算它的正切。该表达式的值是 True
或 False
,但 math.tan()
要求其参数是一个数字。 True
等同于 1
,False
等同于 0
,因此它计算 math.tan(1)
或 math.tan(0)
取决于类型与-.85
.
顺便说一句,Python 允许你链接条件,所以如果你想测试它是否在两个数字之间,你不需要写两次表达式 math.tan(grid[row][column]['type'])
。
if -.85 <= math.tan(grid[row][column]['type']) <= -.8: