【发布时间】:2020-12-08 13:01:58
【问题描述】:
我正在制作自己的图形库,并且我有一个 Sprite 类,它只是一个具有宽度和高度的颜色数组。我可以通过改变它的颜色值在精灵上设置一个像素。如何在给定开始位置和结束位置的精灵上画一条线?
class Sprite
{
public:
Sprite();
public:
LongUtils::Pixel GetPixel(int32_t x, int32_t y) const;
bool SetPixel(int32_t x, int32_t y, Pixel p);
LongUtils::Pixel* GetData(); // return the *data
LongUtils::Pixel* GetBlockData(uint32_t x, uint32_t y, uint32_t w, uint32_t h);
private:
LongUtils::Pixel* data = nullptr;
int32_t width = 0;
int32_t height = 0;
};
【问题讨论】:
-
查找各种画线算法 - 比如en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
标签: c++ line sprite draw pixel