powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как нарисовать треугольник, зная центр где он будет находится?!
33 сообщений из 33, показаны все 2 страниц
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661727
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рисую так:
Код: pascal
1.
2.
3.
Bitmap.Canvas.Pen.Color:=clred;
Bitmap.Canvas.Pen.Width:=3;
Bitmap.Canvas.Polygon([Point(20,50),Point(30,20),Point(40,50)]);



Но вопрос такой, нарисовать этот треугольник, чтобы его центр был в координатах x=250,y=500 или любых других...
Если не по русски объяснил, объясню проще: нариcовать треугольник размером как у меня зная где должна быть его середина
Голову поломал всю (
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661733
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
без угла поворота не получится
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661734
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecatorбез угла поворота не получится

Кстати мне его тоже поворачивать нужно....
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661735
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала стоит определить, какой центр треугольника у тебя есть:
https://ru.m.wikipedia.org/wiki/Замечательные_точки_треугольника
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661737
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonДля начала стоит определить, какой центр треугольника у тебя есть:
https://ru.m.wikipedia.org/wiki/Замечательные_точки_треугольника
У меня есть координаты центра треугольника, то есть зная всего 2 координаты нарисовать треугольник, и эти 2 координаты и есть центр треугольника.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661738
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venza> У меня есть координаты центра треугольника

Тебе говорят о том (и дали ссылку), что "центр треугольника" -
понятие неоднозначное и под этим могут трактоваться разные
точки, от чего соответственно и зависит расчёт его вершин.

Это во-первых. Во-вторых, зная ТОЛЬКО координаты центра
и ничего больше (других величин - высоты и пр.) нарисовать
"правильный" треугольник не получится, ибо подходящих
треугольников будет бесконечное множество.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661739
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
defecatorбез угла поворота не получитсяА как не крути, - geek on the bald and overkeel
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661740
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустамvenza> У меня есть координаты центра треугольника

Тебе говорят о том (и дали ссылку), что "центр треугольника" -
понятие неоднозначное и под этим могут трактоваться разные
точки, от чего соответственно и зависит расчёт его вершин.

Это во-первых. Во-вторых, зная ТОЛЬКО координаты центра
и ничего больше (других величин - высоты и пр.) нарисовать
"правильный" треугольник не получится, ибо подходящих
треугольников будет бесконечное множество.

Код: pascal
1.
нариcовать треугольник размером как у меня

из 1 поста


обычный равнобедренный треугольник любого размера
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661742
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вычисли координаты трех точек на плоскости или в пространстве.
2. Нарисуй три линии между этими точками.
ПРОФИТ!
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661743
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venza> нариcовать треугольник размером как у меня из 1 поста

Это плохо согласуется с "зная всего 2 координаты центра".
Ну и "как у меня" - это классное определение, сразу 5+.

> обычный равнобедренный треугольник любого размера

Он теперь ещё и равнобедренный. Это упрощает дело, но
их всё равно будет бесконечное множество с этим центром.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661744
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй сначала сделать все на бумаге, по линейке. Как поймешь логику - вперед за комп.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661745
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzaобычный равнобедренный треугольник любого размера

Одна вершина будет на расстоянии Х от центра вверх. Вторая вершина будет на расстоянии Х
от центра вправо-вниз под углом 30 градусов. Третья - то же самое влево-вниз. В чём
проблема? Забыл что такое синус и косинус?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661749
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Третья - то же самое влево-вниз.

И этот туда же... :) Не путай равнобедренный и равносторонний.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661751
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот нашел зависимости сторон:
Код: pascal
1.
Bitmap.Canvas.Polygon([Point(x,4*y),Point(3*x,4*y),Point(2*x,y)]);

Всегда рисует нужный мне треугольник.

Я правильно понимаю вот эти формулы нужны для поворота?
Код: pascal
1.
2.
x: = x + f*sin(угол- PI/2) 
y: = y + f*cos(угол- PI/2)
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661754
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамНе путай равнобедренный и равносторонний.

А не пофиг? Равносторонний это частный случай равнобедренного. Отличие только в углах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661762
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzaУ меня есть координаты центра треугольника, то есть зная всего 2 координаты нарисовать треугольник, и эти 2 координаты и есть центр треугольника.
Даю алгоритм:

1. Рисуешь ЛЮБОЙ треугольник
2. Вычисляешь координаты его центра
3. Сдвигаешь треугольник на разность вычисленных координат центра с требуемыми.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661798
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure DrawTriangle(const X, Y,  R: Integer);
var
  A: array of TPoint;
begin
  //R = radius from point centre
  SetLength(A,3);
  A[0].X := x;
  A[0].Y := y-R;
  A[1].X := x-R;
  A[1].Y := y+R;
  A[2].X := x+R;
  A[2].Y := y+R;

   img.Canvas.Polygon(A);
end;



Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661809
Фотография Virtual Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу подсказать как сову нарисовать по её центру :)
А если серьезно - вспомните (почитайте) про медианы, вписанные и описанные окружности.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661814
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне думается, все гораздо проще.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
XCenter:=500;
YCenter:=250;
Hgt:=400;
Wdt:=200;
X1:=XCenter;
Y1:=YCenter-(Hgt div 2);
Y2:=YCenter+(Hgt div 2);
Y3:=Y2;
X2:=XCenter-(Wdt div 2);
X3:=XCenter+(Wdt div 2);
//дальше нарисовать по этим точкам
//ну а крутит он пусть сам
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661820
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venzaВот нашел зависимости сторон:
Код: pascal
1.
Bitmap.Canvas.Polygon([Point(x,4*y),Point(3*x,4*y),Point(2*x,y)]);

Всегда рисует нужный мне треугольник.
...
А если x будет равен нулю? А если х будет равен у?
...
Предлагаю тему для диспута: "Нужно ли программисту корячиться, чтобы получить хотя бы неполное среднее образование?" - (С).
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661883
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Центр равнобедренного треугольника - это тоже вопрос с подвохом. С одной стороны - ОК, пусь центр будет равноудалён от вершин треугольника, что логически имеет смысл, а с другой стороны очень часто центром треугольника считаю его центр тяжести, что физически имеет смысл.
И то и другое расчитать не сложно, просто добавляет неоднозначности к постановке вопроса.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661892
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimonka,

имхо, пора плавно переходить к рассмотрению понятия центра равнобедренного треугольника на сфере, в случае цилиндрической развертки последней.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661901
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД__Dimonka,

имхо, пора плавно переходить к рассмотрению понятия центра равнобедренного треугольника на сфере, в случае цилиндрической развертки последней. Тогда уж развёртку на сфероиде или эллипсоиде, если проецируем на Землю и игнорируем рельеф.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661916
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimonka,

зачем же рельеф игнорировать? Неделя только начинается.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39661917
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
чччД__Dimonka,

зачем же рельеф игнорировать? Неделя только начинается.
он натягивает треугольник на шар !
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39662000
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorчччД__Dimonka,

зачем же рельеф игнорировать? Неделя только начинается.
он натягивает треугольник на шар !
Имею заметить, что форма земли - не шар, а эллипсоид вращения (в первом приближении).
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39662003
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpdefecatorпропущено...

он натягивает треугольник на шар !
Имею заметить, что форма земли - не шар, а эллипсоид вращения (в первом приближении).

В нашем сериале "Как натянуть сову на глобус" ожидается выпуск очередного сезона?-)
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39662093
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp, форма земли - геоид
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39662098
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glaysalekcvp, форма земли - геоидага, нам так и сказали на паре геологии: "Земля имеет форму Земли" :-)
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39663201
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kast2K
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure DrawTriangle(const X, Y,  R: Integer);
var
  A: array of TPoint;
begin
  //R = radius from point centre
  SetLength(A,3);
  A[0].X := x;
  A[0].Y := y-R;
  A[1].X := x-R;
  A[1].Y := y+R;
  A[2].X := x+R;
  A[2].Y := y+R;

   img.Canvas.Polygon(A);
end;



Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.

Вот что я пробовал:
Код: pascal
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.
procedure TForm1.DrawTriangle(const X, Y, N, R: Integer);
var
  A: array of TPoint;
  xx,yy,x0,y0:integer;
begin

  //xx:=round((x)*cos(n)-(y)*sin(n));
  //yy:=round((x)*sin(n)+(y)*cos(n));
  //xx:=x+round(r*sin(N*pi/180));
  //yy:=y-round(r*cos(N*pi/180));
  //xx:=x+round(r*sin(n*pi/180));
  //yy:=y-round(r*cos(n*pi/180));
  //showmessage(inttostr(xx));
  //showmessage(inttostr(yy));
  //R = radius from point centre
 // обычное:
XX := round(x * cos(n) - y * sin(n));
YY := round(y * cos(n) + x * sin(n));
{
вокруг центра:

X = x0 + (x - x0) * cos(a) - (y - y0) * sin(a);
Y = y0 + (y - y0) * cos(a) + (x - x0) * sin(a);
где, (x0, y0) — центр, точка вокруг которой нужно вращать    }



  SetLength(A,3);
  A[0].X := xx  ;
  A[0].Y := yy-R ;
  A[1].X := xx-R ;
  A[1].Y := yy+R ;
  A[2].X := xx+R ; //сюда тоже пытался подставлять формулы, результат 0
  A[2].Y := yy+R ;

  image321.Canvas.Pen.Color:=clred;
  image321.Canvas.Pen.Width:=3;

  image321.Canvas.Polygon(A);
end;




Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TForm1.Button2Click(Sender: TObject);
begin

DrawTriangle(256,256,strtoint(Edit1.Text),5);



end;



Где N угол поворота.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39663211
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzaГде N угол поворота.

А ты в курсе, что этот угол задаётся в радианах, а не градусах?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39663215
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovvenzaГде N угол поворота.

А ты в курсе, что этот угол задаётся в радианах, а не градусах?

Нет, не знал! Спасибо, щас попробовал, переписал, не поворачивает.
...
Рейтинг: 0 / 0
Как нарисовать треугольник, зная центр где он будет находится?!
    #39663218
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzaне поворачивает.

И не должно, ибо то, что ты написал - совсем не формула поворота треугольника. Возвращайся
за парту, изучай линейную алгебру с её матрицами преобразования координат.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как нарисовать треугольник, зная центр где он будет находится?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]