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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 17:14   #101
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для более мелких объектов масштабирование нужно. Тогда все по другому нужно делать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.11.2014, 15:21   #102
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Уважаемый, indexx. Не могли бы вы подсказать. Вы говорили про коэффициент перевода в нормальные единицы. Я перевела у меня получилось, что 1 кв.пиксель=35,45 кв.м. Куда мне записать этот коэффициент, чтобы правильно считалась площадь????
Аника Янковская вне форума Ответить с цитированием
Старый 14.11.2014, 17:28   #103
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Здравствуйте! Подскажите пожалуйста. Я сделала так, чтобы когда я выделяю многоугольник щелчками, все координаты записывались в ComboBox, и теперь с помощью формулы мне надо найти площадь. Я вычислила площадь прямоугольника, получилось так:
Код:
procedure TForm2.Button2Click(Sender: TObject);
var x1,y1,x2,y2,x3,y3,x4,y4,s:real;
begin
x1:=strtofloat(ComboBox1.Items[0]);
y1:=strtofloat(ComboBox2.Items[0]);
x2:=strtofloat(ComboBox1.Items[1]);
y2:=strtofloat(ComboBox2.Items[1]);
x3:=strtofloat(ComboBox1.Items[2]);
y3:=strtofloat(ComboBox2.Items[2]);
x4:=strtofloat(ComboBox1.Items[3]);
y4:=strtofloat(ComboBox2.Items[3]);
s:=0.5*(x1*y2-y1*x2+x2*y3-y2*x3+x3*y4-y3*x4+x4*y1-y4*x1);
Edit1.text:=floattostr(s);
end;
end.
Эту площадь считает правильно. А мне теперь необходимо записать так, чтобы можно было найти площадь для многоугольника с количеством вершин не 4, а n. Как можно это записать???

Последний раз редактировалось Stilet; 14.11.2014 в 19:34.
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 19:55   #104
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Для расчета площади я беру данные с координатами с StringGrid1. Координаты по X - 1 столбец, по Y - 2.
Код:
procedure TForm2.Button2Click(Sender: TObject);
type m10=array[1..100] of real;
var x,y:m10;
i,n:integer;
s:real;
begin
n:=StringGrid1.RowCount;
for i:=1 to n do begin
x[i]:=strtofloat(StringGrid1.Cells[0,i+1]);
y[i]:=strtofloat(StringGrid1.Cells[1,i+1]);
end;
x[n+1]:=x[1];    
y[n+1]:=y[1];
s:=0;
for i:=1 to n do
s := s + (x[i]*y[i+1] - y[i]*x[i+1]);
s:=abs(s/2);
Edit1.text:=floattostr(s);
end;
Программа не работает, подскажите, что нужно исправить.
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 20:01   #105
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
подскажите, что нужно исправить.
Первое, что надо исправить - выкинуть stringgrid из программы и больше никогда не хранить данные в визуальных компонентах.
Кстати, могу дать неплохой пример.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 18.11.2014 в 20:05.
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 20:06   #106
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

А мне нужно именно из него брать данные и считать площадь. Задание такое. Это вообще возможно сделать?
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 20:09   #107
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Задание такое.
покажи оригинал!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 20:14   #108
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Весь текст программы?
Аника Янковская вне форума Ответить с цитированием
Старый 18.11.2014, 20:16   #109
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Аника Янковская Посмотреть сообщение
Весь текст программы?
нет!
оригинал ЗАДАНИЯ!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.11.2014, 20:22   #110
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Задание было в устной форме. Сказали, чтобы все координаты записывались, а потом их использовали для вычисления площади. Сказали, что нужно подумать, как записать, т.к. при каждом новом выделении будут получаться разные многоугольники (разное количество вершин).
Аника Янковская вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на паскале, в которой можно нарисовать несколько окружностей произвольного радиуса мышкой в графическом режиме А1иночка Помощь студентам 9 11.04.2012 00:19
Работа с Канвой, Шейпы Arkuz Общие вопросы Delphi 0 17.12.2010 01:58
Работа с канвой Delphi (Математический расчёт) Dancewithevil Помощь студентам 1 20.05.2010 10:13
нарисовать стрелку на делфи studentOne Помощь студентам 7 17.11.2009 07:36
Работа с мышкой Klio Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 03.05.2008 22:37