Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 24

Как вписать эллипс в прямоугольник?

18.05.2014, 16:59. Показов 3790. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задано любое число, при нажатии на кнопку генерируются эллипсы рандомных размеров(см. код). Как можно сделать эти эллипсы ВПИСАННЫМИ в прямоугольник?
C++
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct points
  {int x,y;
  TColor Color;
   void draw(TCanvas *cn);
   };
 
void points::draw(TCanvas *cn)
  {cn ->Pen->Color=Color;
   cn->Pen->Width=3;
   cn->Brush->Style=bsSolid;
   cn->Brush->Color=Color;
   cn->Ellipse(x+3,y+3,x-3,y-3);
  }
 
 struct ellips
  {points p1,p2,d1; TColor Color;
  void draw(TCanvas *cn);
  };
 
 
 void ellips::draw(TCanvas *cn)
  {d1.x=(p1.x+p2.x)/2 ;
   d1.y=(p1.y+p2.y)/2;
   cn ->Pen->Color=Color;
   cn->Pen->Width=3;
   cn->Brush->Style=bsClear;
   cn->Ellipse(p1.x,p1.y,p2.x,p2.y);
   cn->Brush->Style=bsSolid;
   cn->Brush->Color=Color;
   cn->Ellipse(d1.x+3,d1.y+3,d1.x-3,d1.y-3);
  }
 
  ellips* create(int n)
  {
   ellips *Ell;
   Ell= new ellips[n];
   return Ell;
   }
 
 
 void draw_ellips (int n, ellips **ell, TCanvas *cn)
  {int i;
     for (i=0; i<n; i++)
        ell[i]->draw(cn);
  }
 
  points** centers(int n, ellips**Ell)
  {
   int i;
   points **p;
   p=new points *[n];
   for (i=0;i<n;i++) p[i]=new points;
   for (i=0;i<n;i++)
   {
   p[i].x=(p1.x+p2.x)/2;
   p[i].y=(p1.y+p2.y)/2;
   p[i].color=Ell[i].color;
   }
   return p;
   }
 
   void draw_centres (int n, points **p, TCanvas *cn)
 
 
 void rand_ellipse (int n, ellips **Ell, points **pnts)
  {int i;
     for (i=0; i<n; i++){
     ell[i]->p1.x=random(600);
     ell[i]->p1.y=random(450);
     ell[i]->p2.x=random(600);
     ell[i]->p2.y=random(450);
     ell[i]->Color=(TColor)random(0xffffff);
     pnts[i]->d1.x=(p1.x+p2.x)/2;
     pnts[i]->d1.y=(p1.y+p2.y)/2;
     }
     }
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ellips **Ell;
  points **Pnt;
  int n =Edit1->Text.ToIntDef(5);
  int i;
  Ell= new ellips*[n];
  Pnt= new points*[n];
  for (i=0;i<n;i++)
   Ell[i]=new ellips;
   rand_ellipse(n,Ell,Pnt);
   draw_all(n,Ell,Pnt,Canvas);
  for (i=0;i<n;i++)
   delete Ell[i];
   delete []Ell;
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2014, 16:59
Ответы с готовыми решениями:

Графика.Внижней левой четверти нарисовать элипс в него вписать прямоугольник,а в прямоугольнике вписать слово "Макака".
Графика.В нижней левой четверти нарисовать элипс в него вписать прямоугольник,а в прямоугольнике вписать слово &quot;Макака&quot;,Все...

Вписать эллипс в параллелограмм
Добрый день. Поставил я себе грандиозную задачу — изобразить проекцию квадрата с вписанной окружностью на произвольную плоскость....

Вписать эллипс в треугольник
Добрый день! Есть задание - вписать наибольший эллипс с заданным соотношением полуосей (a/b=2) в треугольник. Как бы по теме R-функций,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2014, 16:59
Помогаю со студенческими работами здесь

Есть вписанный в прямоугольник эллипс (в 2D), как найти точки его фокуса?
Привет! Ну собственно сабж. Есть прямоугольник, есть координаты всех его вершин, как найти координаты точек фокуса эллипса? Точнее меня в...

Вписать равносторонний пятиугольник в эллипс
Существует аналитическое решение данной задачи или нет? Я составил систему уравнений, но они нерешаемы из-за избытка корней с неизвестной...

Вписать квадраты в прямоугольник
Всем доброго времени суток. Дано задание: /*Подробно описать функцию перебора с возвратом, решающую следующую задачу: дано множество...

Вписать пятно в квадрат(прямоугольник)
Ребята у меня есть изображения. С него я делаю массив цветов(Р Г или Б) (картинка черно белая без разници какой канал брать) сами пятна...

Можно ли вписать прямоугольник/треугольник в круг?
В школах страны Байтландии прижился интересный обычай. Один раз в году, в «День пряника» девочки пекут (под руководством старших, конечно!)...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru