我已经在图形库上工作了一段时间,并且已经达到了我必须绘制Bezier和基于行的字体的程度。到目前为止,我坚持这个:
绿线是Bezier路径,白色部分是渲染的。
我用于Beziers的代码是here。行的一个是here。对于那些不知道Lua的人。
路径渲染(线条):32 - 39 算法如下:
(1-index)^2*x1+2*(1-index)*index*x2+index^2*x3
到目前为止一切正常。绿线是使用路径方法生成的。
白色部分以完全不同的方式呈现:
要查找y的x值,我使用getX方法(Bezier中的第46行和第31行中的行)。
我用于绘图的代码就是这个:
local xBuffer = {}
local state = false
for i=0,500 do
for k,v in pairs(beziers) do
a,b = v.getX(i)
if a then
xBuffer[round(a)] = 1
if b then
xBuffer[round(a)] = 1
end
end
end
for k,v in pairs(lines) do
a = v.getX(i)
if a then
xBuffer[round(a)] = 1
end
end
state = false
for x=0,600 do
if xBuffer[x] then
state = not state
end
if state then
love.graphics.points(x,i)
end
end
end
快速解释:对于i,v成对迭代通过作为对的参数给出的表。 love.graphics.points(x,y)在x,y处设置一个点。
提前致谢。