-
Всем привет, рисую на канве по пиксельно, как нарисовать эллипс и закрасить его, опять же рисуя только по пикселям?
-
без поворота координат, без использования кривых безье, и методов ellipse и т.п., только через pixels?
-
-
спасибо, рисую так: const r1 = 50;
r2 = 100;
var t: real;
x, y: integer;
begin
t := 0;
x := 0;
y := 0;
repeat
t := t + pi / 500;
x := round(r1 * cos(t));
y := round(r2 * sin(t));
canvas.Pixels[320 + x, 240 + y] := clred;
until t >= 2 * pi;
end;
-
Попробую описать задачу, мне нужно получить случайную пару X и Y для точки принадлежащей эллипсу и внутри него.
-
случайную? :) a:=random*2*pi; x:=random*r1*cos(a); y:=random*r2*sin(a);
-
спасибо, а если в случае с окружностью будет r:=random*2*pi; x=random*r*cos(r) y=random*r*sin(r) так?
-
Допустим я знаю максимальный радиус и центр окружности(в координатах x и y), на канве хочу нарисовать эту окружность и закрасить ее путем получения всех пар координат входящих в эту окружность. Как это сделать?
-
рисую круг на рабочем столе по пикселям var
DeskTop: TCanvas;
h: hwnd;
r: trect;
x, y, i, j,rr: integer;
begin
h := 0;
DeskTop := TCanvas.Create;
try
DeskTop.Handle := GetDC(h);
x := 0;
y := 0;
rr := 10;
for j := 20 to 100 do
begin
y:=0;
for i := 20 to 100 do
begin
if trunc(f_dl(20,20,x,y)) <= rr then
DeskTop.Pixels[x, y] := clred;
inc(y);
end;
inc(x);
end;
ReleaseDC(0, DeskTop.handle);
finally
DeskTop.Free;
end;
end;
-
Вы алгоритм Брезенхема уяснили? Таким образом, вы получите все точки окружности. Учитывая что точки симметричны относительно центра закрасить горизонтальными линиями - как два пальца...
-
спасибо,CrytoGen, вычитал про этот алгоритм! понравился мне,буду с его помощью делать
-
Вот не могу не как понять принцип использования Sin Cos к окружности. Объясните простым человеческим языком, если не сложно.
-
-
Вот не могу не как понять принцип использования Sin Cos к окружности. Объясните простым человеческим языком, если не сложно.
-
Берёшь окружность радиуса 1. Поместим центр координат в центр окружности. На окружности берёшь произвольную проводишь через эту точку лучь из центра окружности. Тогда точка будет иметь координаты x=1*cos(t) y=1*sin(t) Где t -есть угол. отсчитываем от оси OX Так мы можем описать любую точку на окружности. Т.е. это и будет уравнение окружности в параметрическом виде.
-
дельфи для скота
-
|