Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
freeride_funny
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 2
#1

Построить окружность, которая проходит через заданную точку и касается обеих координатных осей - Delphi

22.05.2017, 19:41. Просмотров 189. Ответов 4
Метки нет (Все метки)

Суть задачи: построить окружность, которая проходит через заданную точку (вводится пользователем) и касается обеих координатных осей. Ось координат не более x=[-10;10]; y=[-10;10]. Заранее спасибо
P.S. Делфи учил 5 лет назад, а теперь надо быстро вспомнить)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2017, 19:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построить окружность, которая проходит через заданную точку и касается обеих координатных осей (Delphi):

Построить график функции с указанием координатных осей, масштаба в Делфи - Delphi
f(x)=\frac{4{x}^{2}+5}{4x+8}

Построить на экране касательную к данной окружности, проходящую через заданную точку на окружности - Delphi
Окружность задана координатами центра и радиусом. Построить на экране касательную к данной окружности, проходящую через заданную точку на...

Составить программу, определяющую, проходит график функции y = x2 +2 x +2 через точку А (x, y) - Delphi
Составить программу, определяющую, проходит график функции y = x2 +2 x +2 через точку А (x, y).

36. График функции у = ах2 + Ьх+ с проходит через заданную точку с координатами (т, п) - C++
36. График функции у = ах2 + Ьх+ с проходит через заданную точку с координатами (т, п).

График функции у = ах2 + bx + с проходит через заданную точку с координатами (т, п). - Turbo Pascal
График функции у = ах2 + bx + с проходит через заданную точку с координатами (т, п).

Составить программу, определяющую, проходит ли график функции через заданную точку - Turbo Pascal
Составить программу, определяющую, проходит ли график функции y = x2 + 2x + 2 через точку А (x, y).

4
Puporev
Модератор
52431 / 40278 / 13611
Регистрация: 18.05.2008
Сообщений: 93,123
23.05.2017, 10:22 #2
Цитата Сообщение от freeride_funny Посмотреть сообщение
Делфи учил 5 лет назад, а теперь надо быстро вспомнить)
Для начала вспоминайте геометрию, как вычислить координаты центра окружности и ее радиус, а Делфи что, там все просто.
Delphi
1
Canvas.Ellipse(x0-r,y0-r,x0+r,y0+r);
0
Matan!
Delphi/Java/DB Dev + Math
297 / 163 / 31
Регистрация: 31.05.2013
Сообщений: 1,412
Записей в блоге: 3
Завершенные тесты: 1
23.05.2017, 11:34 #3
Условие можно переформулировать так:
если заданная пользователем точки (xa, ya), (хb, 0), (0, yc) удовлетворяют уравнению окружности, то рисуем окружность.
Точки (хb, 0), (0, yc) вычисляются.
0
Puporev
Модератор
52431 / 40278 / 13611
Регистрация: 18.05.2008
Сообщений: 93,123
23.05.2017, 14:38 #4
Вот что-то нацарапал. Насчет геометрии был неправ, здесь практически не нужна, так, остатки в мозгу.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var
  Form1: TForm1;
  tx,ty,r,cx,cy,m:real;
  c:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    x,y,d:double;
begin
//проверяем ввод координат точки
val(Edit1.Text,tx,i);
if(i<>0)or(tx<-10)or(tx>10) then
 begin
  ShowMessage('Неверно введена кордината Х');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
val(Edit2.Text,ty,i);
if(i<>0)or(ty<-10)or(ty>10) then
 begin
  ShowMessage('Неверно введена кордината Y');
  Edit2.Clear;
  Edit2.SetFocus;
  exit;
 end;
x:=0;
y:=0;
d:=sqrt(sqr(x-abs(tx))+sqr(y-abs(ty)));
while abs(x-d)>0.1 do
 begin
  x:=x+0.01;
  y:=x;
  d:=sqrt(sqr(x-abs(tx))+sqr(y-abs(ty)));
 end;
if tx>0 then cx:=x else cx:=-x;
if ty>0 then cy:=y else cy:=-y;
r:=d;
PaintBox1.Width:=PaintBox1.Height;//сделаем окно рисования квадратным
c:=PaintBox1.Width div 2; //центр координат
m:=(c-10)/10; //масштаб
ShowMessage('Вычисления окончены, можете рисовать');
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
with PaintBox1.Canvas do
  begin
   //очистим окно
   Brush.Color:=clSkyBlue;
   Fillrect(Cliprect);
   //рисуем сетку
   Moveto(c-round(10*m),c);Lineto(c+round(10*m),c);
   Moveto(c,c-round(10*m));Lineto(c,c+round(10*m));
   for i:=1 to 10 do
    begin
     Moveto(c+round(i*m),c-3);Lineto(c+round(i*m),c+3);
     Moveto(c-round(i*m),c-3);Lineto(c-round(i*m),c+3);
     Moveto(c-3,c-round(i*m));Lineto(c+3,c-round(i*m));
     Moveto(c-3,c+round(i*m));Lineto(c+3,c+round(i*m));
     Textout(c+round(i*m)-5,c+10,inttostr(i));
     Textout(c-round(i*m)-5,c+5,inttostr(-i));
     Textout(c-15,c-round(i*m)-5,inttostr(i));
     Textout(c-20,c+round(i*m)-5,inttostr(-i));
   end;
  Brush.Style:=bsClear;
  Pen.Color:=clRed;
  Ellipse(c+round(cx*m)-round(r*m),c-round(cy*m)-round(r*m),
          c+round(cx*m)+round(r*m),c-round(cy*m)+round(r*m));
  Brush.Style:=bsSolid;
  Pen.Color:=clBlue;
  Brush.Color:=clBlue;
  Ellipse(c+round(tx*m)-3,c-round(ty*m)-3,c+round(tx*m)+3,c-round(ty*m)+3);
 end;
end;
1
Вложения
Тип файла: rar Окружность и точка.rar (171.6 Кб, 1 просмотров)
freeride_funny
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 2
02.06.2017, 20:27  [ТС] #5
Спасибо всем огромное!
0
02.06.2017, 20:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2017, 20:27
Привет! Вот еще темы с ответами:

Составить уравнение плоскости, которая проходит через точку - Геометрия
3.Составить уравнение плоскости, которая проходит через точку A(−1; −7; −5) и имеет нормальный вектор ~n = (−1; −5; −6).

Найти уравнение кривой которая проходит через точку - Дифференциальные уравнения
Найти уравнение кривой которая проходит через точку А (1,2), если её под касательная вдвое больше абсциссы точки прикосновения.

Найти прямую (в пространстве), которая проходит через точку и две прямые - Геометрия
Найти прямую, которая проходит через точку P(0,3,-2) и прямые {L}_{1}\ :\ \frac{x-2}{1}=\frac{y+1}{-3}=\frac{z}{1};\ {L}_{2}\ :\...

Исследовав область определения и выбрав расположение координатных осей на экране и масштаб, построить графики функций - Pascal
Всем здравствуйте! Может кто-то знает, как написать такую программу. Помогите пожалуйста, очень срочно нужно!!! Благодарна за ранее! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru