Форум: "Основная";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизПомогите кто может Найти похожие ветки
← →
котел (2002-12-10 00:52) [0]Имеется окружность. Нужно постепенно залить круг(типа горизонтальный уровень в стакане),вариант с Pie не предлогагь
← →
PVOzerski (2002-12-10 02:48) [1]IMHO, надо исходить из уравнения окружности x^2+y^2=R^2: находим возможные значения абсциссы для одной и той же ординаты и, если их 2, рисуем линию (с учетом поправок для X и Y, исходящих из координат центра окружности, а также того, что точка, куда непостредственно указывает LineTo, не прокрашивается, т.е надо прибавлять ко 2-й абсциссе еще единичку).
← →
zavdim (2002-12-10 08:33) [2]1. А можно узнать чем Pie не нравится?
2. Если фигура выпуклая, есть начальная точка в фигуре и есть функция, которая возвращает истину если переданная ей точка лежит в фигуре и наоборот, то я писал функцию заливки, по пути считал площадь фигуры.
← →
Наталия (2002-12-10 09:45) [3]А можно и через регионы попробовать решать...
← →
han_malign (2002-12-10 10:25) [4]Докатились - уже не можем сами нарисовать фигурную гистограмму, с заданной формой границы, дети этим еще в 5-8 классе балуются.
Как вариант - рисуешь в Paint-е маску(хоть в виде члена с яйцами...)(маска - битовая матрица задающая поле отрисовки(монохромная картинка)), а дальше по маске рисуешь прямоугольник нужной высоты - можно руками проверять, можно воспользоваться API функциями(MaskBlt - скажем).
← →
zavdim (2002-12-10 10:29) [5]не заметил слова "постепенно".
но мой вариант(без подробностей) - катит, у меня там постепнно и закрашивается.
← →
MBo (2002-12-10 14:21) [6]timer1.enabled:=True;
h:=0;
x0:=200;
y0:=200;
r:=100;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
h:=h+0.01;
if h>pi then
Timer1.Enabled:=False;
Canvas.Chord(x0-r,y0-r,x0+r,y0+r,x0-round(r*sin(h)),
y0+round(r*cos(h)),x0+round(r*sin(h)),y0+round(r*cos(h)));
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c