Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 09:05   #1
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
Вопрос Порисуем? Delphi

Помогите нарисовать:

Даны действительные числа x,y – координаты точки, R1,R2 – соответственно радиусы большей и меньшей окружностей (см. рис.). Центр 2-й окружности – точка с координатами (0,R1). Определить: принадлежит ли точка (x,y) области, заштрихованной на рисунке.



Спасибо
Изображения
Тип файла: jpg Новый точечный рисунок.jpg (4.3 Кб, 200 просмотров)
MrMorozko вне форума Ответить с цитированием
Старый 14.12.2010, 09:06   #2
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Или как то этот код переделать:

Код:
procedure TForm1.FormCreate(Sender: TObject);
var x1,y1,x2,y2 : integer;
begin
x1:=0;
y1:=0;
x2:=0;
y2:=0;
image1.Canvas.Brush.Color:=cl3DLight;
image1.Canvas.Brush.Style:=bssolid;
image1.Canvas.Pie(image1.Width div 2 -87, image1.Height div 2 -89,image1.Width div 2 +93, image1.Height div 2 +89,image1.Width div 2+45, image1.Height div 2 ,image1.Width div 2 -40, image1.Height div 2 );
image1.Canvas.Brush.Color:=clwhite;
image1.Canvas.Brush.Style:=bssolid;
image1.Canvas.Pie(image1.Width div 2 +49, image1.Height div 2 -45,image1.Width div 2 -49, image1.Height div 2 +45,image1.Width div 2 +1, image1.Height div 2,image1.Width div 2 +1, image1.Height div 2 -45);
Image1.Canvas.Pen.Color:=clblack;
Image1.Canvas.Pen.Width := 3;
Image1.Canvas.Polyline([point(0,image1.height div 2 -2),point(image1.Width,image1.height div 2 -2)]);
Image1.Canvas.Polyline([point(image1.width div 2 +4,0),point(image1.width div 2 +4,image1.height)]);
image1.Canvas.TextOut(image1.Width div 2 - 20,10,'Y');
image1.Canvas.TextOut(image1.Width-10,Image1.Height div 2 - 20,'X');
image1.Canvas.TextOut(image1.Width div 2 +90, image1.Height div 2,'6');
image1.Canvas.TextOut(image1.Width div 2 +50, image1.Height div 2,'3');
while x1 <= 360 do
begin
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Style := pssolid;
Image1.Canvas.MoveTo(x1, y1);
Image1.Canvas.LineTo(x1, y1+400);
x1 := x1 + 15;
Image1.Canvas.MoveTo(x2, y2);
Image1.Canvas.LineTo(x2+300, y2);
y2 := y2 + 15;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var r:real; x,y : integer;
begin
Image1.Canvas.Pen.Width := 4;
Image1.Canvas.Pen.Color := clred;
x := StrToInt(Edit1.Text);
y := StrToInt(Edit2.Text);
r:=sqrt(sqr(x)+sqr(y));
Image1.Canvas.MoveTo(image1.Width div 2 +4+x*15,image1.Height div 2 +y*(-15));
Image1.Canvas.LineTo(image1.Width div 2 +4+x*15,image1.Height div 2 +y*(-15));
if (y>=0) and (x>=0) and (r>=3) and (r<=6) then
label3.Caption:='принадлежит' else
if (y>=0) and (x>=-6)and (x<=0) and (r<=6) then
label3.Caption:='принадлежит' else
label3.Caption:='не принадлежит';
end; end.
MrMorozko вне форума Ответить с цитированием
Старый 14.12.2010, 09:07   #3
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Я вот смотрю и ничего не понимаю...шарю только в работах с БД просто
MrMorozko вне форума Ответить с цитированием
Старый 14.12.2010, 11:26   #4
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

В начале рисуешь маленькую окружность. Установи Image1.Canvas.Brush.Style := bsDiagCross. Потом рисуешь большую. Устанавливаешь Image1.Canvas.Brush.Style := bsSolid;. Затем линии x и y для первой и для второй окружности. Потом надписи.
Image1.Canvas.Ellipse(X1, Y!, X2, Y2) рисует эллипс, окружность другими словами.

Последний раз редактировалось Asker13; 14.12.2010 в 11:31.
Asker13 вне форума Ответить с цитированием
Старый 14.12.2010, 16:40   #5
WhiteSpirit
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 82
По умолчанию

Условие попадания точки в заштрихованную область
Код:
(sqr(x - x2) + sqr(y - y2) <= sqr(R2)) and (sqr(x) + sqr(y) > sqr(R1))
где x2, y2 - координаты центра маленького круга
WhiteSpirit вне форума Ответить с цитированием
Старый 14.12.2010, 19:22   #6
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Цитата:
Сообщение от WhiteSpirit Посмотреть сообщение
Условие попадания точки в заштрихованную область
Код:
(sqr(x - x2) + sqr(y - y2) <= sqr(R2)) and (sqr(x) + sqr(y) > sqr(R1))
где x2, y2 - координаты центра маленького круга
Прошу пояснить ка кописать R1 и R2
MrMorozko вне форума Ответить с цитированием
Старый 14.12.2010, 19:35   #7
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

R1, R2 - радиусы большой и маленькой окружностей...
Asker13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27