Тема: линия
Показать сообщение отдельно
Старый 19.04.2011, 19:23   #9
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
дык алгоритм пути по геодате, сам путь есть в виду координат, надо отрезать лишние точки, чтобы посылать мув то локейшен только в точки в которые можно провести прямую линию и на ней не будет препятствий, для этого сначала эту прямую линию надо провести)

Добавлено через 2 минуты
памагите пасаны
Так тут все более чем просто... Путь не является прямой линией, поэтому мысль с построением линии без диагональных переходов - как-то бредова))

Суть такая:
Код:
coord A = CurrentCoord();
coord B = CurrentCoord();
while (A != EndPoint) {
  bool Flag = false, ShiftX=false, ShiftY=false;
  while (!Flag) {
    if(A.x != B.x) ShiftX=true;
    if(A.y != B.y) ShiftY=true;
    if(B == EndPoint) Flag = true;
    if (ShiftX && ShiftY) {
        Flag = true;
        B = PrevPoint();
    }
    else B = NextPoint();
  }
  moveto(B);
  A = B;
}
эт если я правильно понял что тебе надо)
Т.е. мы строим прямую линии до ближайшего диагонального перехода, идем к нему, от него начинаем строить дальше и т.д.... Если нужно изначально все точки просто пробить, то вместо moveto(B) записывай себе куда-нить эту координату и все

Добавлено через 6 минут
Цитата:
Сообщение от mira Посмотреть сообщение
он боитса что диагональная линия пути проскочит между двумя такимиже диагональным пикселами геодаты как я понимаю) и получитса типа как итти можно.
нет, как я понял, у него путь готовый есть уже) просто ему нужно сделать координаты контрольных точек, чтоб не писать MoveTo на каждую точку пути)))

хотя мб я как всегда не допонял что-то))
А если ты прав, то это говорит о том, что выбранный алгоритм для поиска пути заведомо неверный, раз ищет не в 4 направления, а в 8)))

Последний раз редактировалось Aries, 19.04.2011 в 19:26. Причина: Добавлено сообщение
Aries вне форума   Ответить с цитированием