处理 - 从选项卡访问适当的宽度和高度
Posted
技术标签:
【中文标题】处理 - 从选项卡访问适当的宽度和高度【英文标题】:Processing - accessing proper width and height from a tab 【发布时间】:2022-01-16 01:25:47 【问题描述】:在我的主标签中,我使用:
void setup()
fullScreen(1);
println(positions[0][0]);
;
在另一个选项卡中,我想创建一个二维数组并用正确的宽度和高度尺寸计算的值填充它。
int[][] positions =
int(width*18/28.), int(height*18/20.),
int(width*6/28.), int(height*18/20.),
;
预期的答案是 972,宽度为 1512,但我得到 64,因为宽度被指定为默认值 100。
如何在带有数组的选项卡中获取正确的宽度和高度值?
【问题讨论】:
更多细节,其中之一:你期望得到什么,它打印了什么?此外,虽然不太重要:哪个版本的处理? 3.x 还是新的 4? (另请注意,您不需要 int 强制转换:只需删除.
以使 java 使用整数数学。例如 width*18/28
而不是 int(width*18/28.)
)
您缺少预期值和实际打印值。乍一看,代码在语法上是正确的,但我们无法知道它在语义上是否正确
请输入该信息in your post,而不是您的评论。但是,在编辑时:解释为什么您期望该值。更好的是,通过显示完整的 minimal reproducible example 来明确这一点,以便人们可以看到与所涉及的每个变量相关的值。
@tgdavies 的宽度和高度在处理中未指定时默认为 100
(使 64 完全是预期值)
"[...] while println(int(width*18/28.));
give me 972" 在普通的处理草图中是不正确的,所以如果你想证明那是你需要展示一个正确的minimal reproducible example真的看到了。
【参考方案1】:
你没有错过任何东西,64 是你应该期待的值。 width
和 height
如果未指定,则默认为 100,因此您将创建一个 0,0 元素设置为 int(width*18/28.)
的二维数组。
100 * 18 / 28 = 1800 / 28 = 64
这正是它应该做的。
【讨论】:
positions
数组是在另一个选项卡中定义的,所以我猜它没有选择正确的屏幕宽度和高度。如何使该数组具有正确的宽度和高度尺寸?
不,不是。您的问题显示了您正在使用的二维数组代码,并解释了 [0][0] 存在问题。没有,所以如果这不是你的问题:更新你的帖子to properly explain your problem。找出你的minimal reproducible example,然后写一篇文章来涵盖突出显示的问题。不要发布带有指导文本的代码,该代码实际上不是您要解决的问题。
我不知道我的问题是另一个问题。在您的帮助下,我更明白了,谢谢!
这就是minimal reproducible example 练习的重点:总是在发帖之前做,因为它可以让你发现真正的问题是什么,即使你仍然无法弄清楚一旦你完成了你的最小设置。以上是关于处理 - 从选项卡访问适当的宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章