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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2014, 06:26   #11
exyl
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 75
По умолчанию

Решил.
Собственно, в итоге мне нужны были смещения, а не абсолютные координаты точек, поэтому вообще обошелся без вычисления длины отрезка, его поворота и т.д.
Код копировать не буду, т.к. очень много объяснять придется, но суть такова, что в самом начале процедуры в A[Low(A)] заносятся координаты стартовой точки, а в A[High(A)] координаты финальной. Это единственные абсолютные координаты в массиве. Далее за начало координат принимается стартовая точка и вычисляются смещения (формулу из кода брать не буду, тут для примера привожу упрощенную, принимая расстояния между точками равными, а не с нужным распределением):
Код:
var
  dX, dY: integer;
begin
{...}
  for i:=Low(A)+1 to High(A)-1 do
    begin
      dX:=(A[High(A)].X-A[Low(A)].X)/(High(A)-2);
      dY:=(A[High(A)].Y-A[Low(A)].Y)/(High(A)-2);
      A[i].X:=Round(dX);
      A[i].Y:=Round(dY);
    end;
{...}
end;
Ну и еще одно упрощение: в оригинале есть еще две переменных типа real, в которых идет накопление этих смещений и которые препятствуют получению большой ошибки округления в итоге.
exyl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на расчет попадания количества точек в заданную область. Ильдар_ Помощь студентам 5 23.12.2013 02:28
Даны координаты точек n на плоскости. Найти номера двух точек, расстояние между которыми наибольшее. getredtm Помощь студентам 3 01.07.2013 01:47
Задаnm n точек. Найти m=3,4... точек и построить на них m-угольник: количество точек , лежащих внутри и вне его мин. различается L.Rain Помощь студентам 0 11.12.2011 22:19
Даны координаты n точек на плоскости. Найти номера двух точек, расстояние между которыми наибольшее. Viwwna Паскаль, Turbo Pascal, PascalABC.NET 2 19.11.2011 06:33
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50