【问题标题】: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真的看到了。

标签: java arrays processing


【解决方案1】:

你没有错过任何东西,64 是你应该期待的值。 widthheight 如果未指定,则默认为 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 练习的重点:总是在发帖之前做,因为它可以让你发现真正的问题是什么,即使你仍然无法弄清楚一旦你完成了你的最小设置。
猜你喜欢
  • 2021-04-03
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2018-04-03
相关资源
最近更新 更多