Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как расчитать точки по окружности, со смещением угла 10 градусов 
:(
    Опции темы
Serhik_z
  Дата 25.4.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 108
Регистрация: 4.12.2004

Репутация: нет
Всего: нет



Как расчитать точки по окружности со смещением угла 10 градусов
зная радиус и угол '360/колл точек+ смещение 10 гр. от координаты Y'
Тоесть расчет идет от верхней точки 'Y' по часовой, 
а нам нужно сместить точку на 10 гр., и далее расчет всех точек со смещением.

Код

procedure TForm1.Button1Click(Sender: TObject);
var
 t: real;     // Колличество точек
 g: real;     //  Градусы для смещения 1-ой точки
 m: real;     //  Минуты
 s: real;     // Секунды
 x: real;     // Координата Х центра окружности
 y: real;     // Координата Y центра окружности
 c: integer;  // челое число
 d: integer;  // дробное число
 r: real;     // Радиус
 n: integer;  // Счетчик
 v: real;     // вычисления
 xa: real;    // вычисления
 ya: real;    // вычисления
begin
 // получить исходные данные из полей ввода
x:= StrToFloat(Edit1.Text); // Координата Х
y:= StrToFloat(Edit2.Text); // Координата Y
g:= StrToFloat(Edit3.Text); // Градусы (смещение 1-ой точки)
m:= StrToFloat(Edit4.Text); // Минуты
s:= StrToFloat(Edit5.Text); // Секунды
t:= StrToFloat(Edit6.Text); // Колличество точек
r:= StrToFloat(Edit7.Text); // Радиус
// предварительные преобразования
c:= Trunc(r); // это целая часть числа t
d:= Trunc(r/2) mod 10000; // это дробная часть числа t

// вычисление 
v:=g+(m/60+(s/3600));// угол смещения верхней Первой точки
v:=v*pi/180;// как угол добавить в цикл???

memo1.Lines.Add('Точки по Y    <:>    Точки по X');
  for n:=0 to Trunc (t-1) do
   begin
xa:= x+r*cos(2*pi*n/t);// n-текущая точка t-колличество точек
ya:= y+r*sin(2*pi*n/t);// 
memo1.Lines.Add('Y' + FloatToStrF(xa,ffFixed,9,8)+'    <:>    '+ 'X' + FloatToStrF(ya,ffFixed,9,8));
end;
end;


 
PM MAIL   Вверх
Alexeis
Дата 25.4.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459




Код

repeat
i := i + 10/180*pi;
x := R*Cos(i);
y := R*Sin(i);
until...
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.