gpt4 book ai didi

c++ - 如何在二维数组中绘制 "line"(屏幕模拟)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:21 25 4
gpt4 key购买 nike

我正在开发一个将打印成位图(更具体地说是 RAW,但这对问题并不重要)的项目,但我正在程序中使用二维数组。

我希望能够为 a、b、x 和 y 的任意值绘制一条从点 (a,b) 到点 (x,y) 的线。我不需要任何花哨的东西,比如抗锯齿;在这一点上,最近邻很好。举个例子,假设我有一个 5x5 二维数组,如下所示:

00,10,20,30,40
01,11,21,31,41
02,12,22,32,42
03,13,23,33,43
04,14,24,34,44

现在,假设我想在 04 和 42 之间画一条线。我想要一种可靠的方法来得出这样的结果:

0,0,0,0,0
0,0,0,0,0
0,0,0,1,1
0,1,1,1,0
1,1,0,0,0

我敢肯定有人在想“呃,这家伙是智障吗?他在这里失败了吗?”,但请幽默一下!

我正在使用 C++,但这对于实际问题来说应该是次要的。

最佳答案

Bresenham's line algorithm是你需要的:

alt text
Bresenham直线算法结果示意图。

关于c++ - 如何在二维数组中绘制 "line"(屏幕模拟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com