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

Вписать равносторонний треугольник в окружность

23.11.2015, 20:51. Показов 1083. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вписать равносторонний треугольник в окружность в C++ Builder. Центр окружности и радиус задаются кликаньем на канве, а треугольник строится автоматически. Вот код, который я сделала. С заданием окружности всё хорошо, а вот с построением треугольника что-то не так.
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
void __fastcall TForm2::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
int count=0;// Счетчик
TPoint points[3];  // Массив для хранения координат
float ax,ay,bx,by,cx,cy; // Координаты вершин треугольника
float mx,my,kc,ky; // координаты оснований высот
float p, s, rx, ry, r; // Периметр, площадь треугольника, радиус окружности
float da,db,dc; // Длины сторон треугольника
float x1,y1,x2,y2; // Координаты концов 2-х биссектрис
float k=3; // Коэффициент пропорциональности
float a1,b1,c1,a2,b2,c2; // Коэффициенты уравнений биссектрис
float xc, yc; // Координаты центра окружности
double sqrt(double x);
// Рисуем
Image1->Canvas->FillRect(Image1->Canvas->ClipRect);
points[count] = Point(X,Y);
if(count == 0){
    Image1->Canvas->MoveTo(X,Y);
     count++;
}
 
else
{
    Image1->Canvas->LineTo(X,Y);
    count=0;
    xc=points[0].x;   // координаты центра
    yc=points[0].y;   // координаты центра
    rx=points[1].x;
    ry=points[1].y;
    r=sqrt((xc-rx)*(xc-rx)+(yc-ry)*(yc-ry));
    Image1->Canvas->Ellipse(xc-r,yc-r,xc+r,yc+r);
    }
 
    // Длины сторон треугольника
    r=sqrt(pow(xc-rx,2)+pow(yc-ry,2));
      da=r*sqrt(k);
      db=r*sqrt(k);
      dc=r*sqrt(k);
 
   //координаты центра
            a1=bx-ax;
            b1=ay-by;
            c1= -(bx-ax)*((ax+bx)/2)+(ay-by)*((ay+by)/2);
            a2=(cx-bx);
            b2=(by-cy);
            c2=-(cx-bx)*((bx+cx)/2)+(by-cy)*((by+cy)/2);
                xc=(b2*c1-b1*c2)/(a1*(-b2)+b1*a2);
                yc=(a1*(-c2)+a2*c1)/(a1*(-b2)+b1*a2);
TPoint points[3];
points[0] = Point(ax,ay);
points[1] = Point(bx,by);
points[2] = Point(cx,cy);
Image1->Canvas->Polygon(points, 2);
  }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2015, 20:51
Ответы с готовыми решениями:

В Paintbox вписать в круг треугольник, потом квадрат, и равнобедренный треугольник
Int a=StrToInt (Edit1->Text); PaintBox->Canvas->Ellipse(200-a/2,200-a/2,200+a/2,200+a/2);нарисовал круг, а как вписать в него другие...

Как вписать в окружность квадрат?
int a,r,x,y,b; r = 100; x = 200; y = 200; PaintBox1->Canvas->Ellipse(TRect(x-r, y-r, x+r, y+r)); a = 50; r = a/sqrt(2);...

Построить равносторонний треугольник, который вращается вокруг одной из вершин
Ребята, такой вопрос: необходимо построить равносторонний треугольник, который вращается вокруг одной из вершин. Вообще не понимаю, как...

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

Вписать в равносторонний треугольник окружность
Дано равносторонний треугольник со стороной b. Разработайте код для определения, можно в этот треугольник вписать окружность радиусом r.

Можно ли равносторонний треугольник со стороной а вписать в круг радиусом r
Прошу помощи в написании программы на паскале, которая будет проверять можно ли равносторонний треугольник со стороной а вписать в круг...

Вписать треугольник в окружность
Здравствуйте! Помогите с такой задачей, пожалуйста. Построить изображение треугольника, вписанного в окружность, если его стороны...

Вписать треугольник в окружность
Как при помощи циркуля и линейки в окружность радиуса R вписать равнобедренный треугольник, зная сумму боковой стороны и высоты,опущенной...

Как вписать правильный треугольник в окружность?
Дан правильный треугольник вписанный в окружность. Координаты одного из углов x1; y1. Радиус окружности равен r. Координаты центра...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru