java - 需要帮助使用 StdDraw 绘制二维数组
问题描述
所以我已经有一个方法可以读取一个我已经转换为二维数组的文件(因此数组的维度每次都可能不同,具体取决于我使用的文件)。现在我正在尝试使用它绘制一个矩形,但它不起作用。我的代码是:
public static void drawBoard(String [][] board) {
for (int i = 0; (i < board.length); i++) { //line 88
for (int j = 0; (j < board[0].length); j++) {
int r = board.length;
int c = board[0].length;
double R = new Double(r);
double C = new Double(c);
StdDraw.setXscale(0,C);
StdDraw.setYscale(0,R);
StdDraw.setCanvasSize(500,500);
StdDraw.setPenRadius(0.05);
StdDraw.setPenColor(StdDraw.BLUE);
StdDraw.rectangle((C/2), (R/2), (C/2), (R/2));
StdDraw.close();
}
}
}
我能做些什么来解决这个问题?我怎样才能让它画一个矩形?它说错误在第 88 行,它是一个“java.lang.NullPointerException”错误。
解决方案
StdDraw.rectangle
需要类型的输入参数double
。您将类型的输入参数传递给它int
。这没关系,但您可能不想这样做。计算C/2
时R/2
进行整数除法,因此您可能会意外向下舍入。C
要解决此问题,您可以将和初始化R
为double
.
推荐阅读
- c++-winrt - 在 uwp 中以编程方式设置系统时间
- python - 如何获取某个组的 Kafka 主题中未读消息的计数
- c++ - 为什么在使用 cv::Umat 时调用 ORB_Impl::detectAndCompute 会阻塞
- php - 如何使用 PHP 从数据库的列中回显一个单词的总数?
- python-poetry - 使用 Poetry 安装 dbt(数据构建工具)时出错
- python - pyinstaller kivy 错误无法获取任何图像提供程序,中止
- lua - 如何在 Roblox Studio 中找到游戏手柄指针的目标?
- android - Android依赖项中的重复类错误
- c++ - SystemC:如何定义 std::array 的信号
- c++ - nlohmann json:安全擦除密钥(C++)