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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2010, 20:31   #1
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
Вопрос Ордината центра тяжести плоскости круга.(Delphi)

Здравствуйте! Мне нужно решить замудренную (во всяком случае на мой взляд задачку в делфи с помощью процедур и функций:
Подсчитать ординату центра тяжести плоскости круга радиуса R с дыркой в
нем с радиусом r = R / 2, расположенной в нижней части круга.

Подскажите пожалуйста, как это сделать??? Заранее благодарю.
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 14.10.2010, 09:25   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

ну и с чем проблемы. С физикой (не знаем какие формулы и как посчитать) или паскалем (не знаем как превратить формулы в программу)?

физика
1. вырезаем в круге еще одну дырку симметричную первой.
2. считаем центр тяжести новой фигуры. Для симметричной фигуры центр тяжести совпадает с геометрическим центром.
3. считаем общий центр масс для двух фигур (круг с двумя дырками и верхний круг).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 14.10.2010 в 09:33.
evg_m вне форума Ответить с цитированием
Старый 14.10.2010, 16:30   #3
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Вот так как-то:
Красные точки - центры тяжести исходных кругов. Синяя точка общий центр тяжести.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 CenX,CenY,CenHX,CenHY,R1,R2,ShiftDown : integer;
 CenDest : Integer;
begin
CenX := 250;CenY := 250; // Центр большого круга
R1 := 100; R2 := 50; // Радиусы кругов
ShiftDown := 40 ; // Смещение вырезанного круга вниз

Form1.Canvas.Ellipse(CenX-R1,CenY-R1,CenX+R1,CenY+R1);
CenHX := CenX; CenHY := CenY+ShiftDown; // Центр вырезанного круга
Form1.Canvas.Ellipse(CenHX-R2,CenHY-R2,CenHX+R2,CenHY+R2);

Form1.Canvas.Pen.Color := clRed;
Form1.Canvas.Ellipse(CenX-1,CenY-1,CenX+1,CenY+1);
Form1.Canvas.Ellipse(CenHX-1,CenHY-1,CenHX+1,CenHY+1);

CenDest := Round((CenY*Pi*Power(R1,2)-CenHY*Pi*Power(R2,2)) / (Pi*Power(R1,2)-Pi*Power(R2,2)));
Form1.Canvas.Pen.Color := clBlue;
Form1.Canvas.Ellipse(CenX-1,CenDest-1,CenX+1,CenDest+1);
end;
To evg_m : Спасибо за теорию.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 14.10.2010, 20:02   #4
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Z1000000 Посмотреть сообщение
Вот так как-то:
Красные точки - центры тяжести исходных кругов. Синяя точка общий центр тяжести.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 CenX,CenY,CenHX,CenHY,R1,R2,ShiftDown : integer;
 CenDest : Integer;
begin
CenX := 250;CenY := 250; // Центр большого круга
R1 := 100; R2 := 50; // Радиусы кругов
ShiftDown := 40 ; // Смещение вырезанного круга вниз

Form1.Canvas.Ellipse(CenX-R1,CenY-R1,CenX+R1,CenY+R1);
CenHX := CenX; CenHY := CenY+ShiftDown; // Центр вырезанного круга
Form1.Canvas.Ellipse(CenHX-R2,CenHY-R2,CenHX+R2,CenHY+R2);

Form1.Canvas.Pen.Color := clRed;
Form1.Canvas.Ellipse(CenX-1,CenY-1,CenX+1,CenY+1);
Form1.Canvas.Ellipse(CenHX-1,CenHY-1,CenHX+1,CenHY+1);

CenDest := Round((CenY*Pi*Power(R1,2)-CenHY*Pi*Power(R2,2)) / (Pi*Power(R1,2)-Pi*Power(R2,2)));
Form1.Canvas.Pen.Color := clBlue;
Form1.Canvas.Ellipse(CenX-1,CenDest-1,CenX+1,CenDest+1);
end;
To evg_m : Спасибо за теорию.
Спасибо конечно, но она не работает. Буду очень благодарен, если поможете мне.
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 14.10.2010, 20:05   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

все работает только math в uses добавьте
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 14.10.2010, 20:13   #6
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Mad_Cat, я добавил, но всё равно не работает. Выдает кучу ошибок. Вот:
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 14.10.2010, 20:19   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

пропустили end;
p51x вне форума Ответить с цитированием
Старый 14.10.2010, 20:26   #8
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

ну за end то понятно, я увидел, а вот остальное...
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 14.10.2010, 20:32   #9
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

проектик свой покажите ибо у меня все работает
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 14.10.2010, 20:37   #10
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Вот, смотрите, если что не так исправляйте меня, я новичок)
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моделирование движения тела под действием силы тяжести AleSS Помощь студентам 11 27.01.2010 16:03
Моделирование движения тела под действием силы тяжести AleSS Помощь студентам 0 26.01.2010 16:45
Delphi: траектория движения круга Sianessa Помощь студентам 10 25.01.2010 17:31
Создание мини дата-центра Alar Свободное общение 20 03.09.2009 09:11