Я пытаюсь сделать функцию в коде на основе Lua или VB для рисования/построения заполненного эллипса. У меня нет много знаний об этой математике, и я могу воспользоваться некоторой помощью.Функция рисования пикселов эллипса на основе sqrt
В Google вы найдете все, что нужно для рисования эллипсов с кодом, но я не могу найти хороший простой рабочий пример в VB или Lua для заполнения.
В предыдущем посте на этом сайте я получил ответ о том, как рисовать нормальный эллипс, но ничего не придумал для заполнения, вот почему я создаю новую тему для наполненной.
Вот несколько сайтов, которые я посетил, но я не могу найти способ сделать заполненный эллипс без перерисовки уже нарисовали пикселей ...
http://groups.csail.mit.edu/graphics/classes/6.837/F98/Lecture6/circle.html
http://www.blitzbasic.com/codearcs/codearcs.php?code=2817
https://scratch.mit.edu/projects/49873666/
http://www.sourcecodesworld.com/source/show.asp?ScriptID=112
Вот код, у меня есть для нормального эллипса (благодаря «Джонни Strings» для версии VB):
function DrawEllipse(xc,yc,w,h)
local w2 = w * w
local h2 = h * h
local fw2 = 4 * w2
local fh2 = 4 * h2
xc = xc + w
yc = yc + h
local x = 0
local y = h
local s = 2 * h2 + w2 * (1 - h)
while h2 * x <= w2 * y do
dot(xc + x, yc + y)
dot(xc - x, yc + y)
dot(xc + x, yc - y)
dot(xc - x, yc - y)
redraw()inkey()
color(int(rnd()*255),int(rnd()*255),int(rnd()*255))
if s >= 0 then
s = s + fw2 * (1 - y)
y = y - 1
end
s = s + h2 * ((4 * x) + 6)
x = x + 1
end
x = w
y = 0
s = 2 * w2 + h2 * (1 - w)
while w2 * y <= h2 * x do
dot(xc + x, yc + y)
dot(xc - x, yc + y)
dot(xc + x, yc - y)
dot(xc - x, yc - y)
redraw()inkey()
color(int(rnd()*255),int(rnd()*255),int(rnd()*255))
if s >= 0 then
s = s + fh2 * (1 - x)
x = x - 1
end
s = s + w2 * ((4 * y) + 6)
y = y + 1
end
end
возможно дубликат [Нарисуйте функции эллипсом SQRT на основе] (http://stackoverflow.com/questions/30384333/draw-an-ellipse-sqrt-based-function) –
@The голубой собаки, извините для сходства в этой теме, но здесь я явно прошу код рисовать заполненный эллипс, на другом посту я получил ответы только на нормальный эллипс .. и, возможно, потому, что я попросил 2 вещи (заполненный и нормальный эллипс) создать новую тему для заполненного эллипса? – Tom
Здесь есть несколько алгоритмов: http://stackoverflow.com/questions/10322341/simple-algorithm-for-drawing-filled-ellipse-in-cc –