LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, и у него не пересечений с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, берёшь произвольную точку прямоугольника (например, один из углов), и методом описанным выше понимаешь, на земле или на воде эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лежит внутри прямоугольника или совпадает с его углом (который, так случилось, стал входной точко для метода), но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, и у него не пересечений с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, берёшь произвольную точку прямоугольника (например, один из углов), и методом описанным выше понимаешь, на земле или на воде эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, и у него не пересечений с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, берёшь произвольную точку прямоугольника (например, один из углов), и методом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, и у него не пересечений с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, берёшь произвольную точку прямоугольника (например, один из углов), и метобом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, и у него не пересечений с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, мерешь произвольную точку прямоугольника (например, один из углов), и метобом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полигонов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, у него не пересечения с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, мерешь произвольную точку прямоугольника (например, один из углов), и метобом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исправление Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, взять референсную точку на Северном Полюсе (можно где угодно).

Для заданной точки, чтобы определить на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полиногов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, у него не пересечения с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, мерешь произвольную точку прямоугольника (например, один из углов), и метобом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?

Исходная версия Kroz, :

Я бы сделал какую-то референсную точку на карте для которой бы я точно знал, на земле она или на воде. Например, на Северном Полюсе (но можно где угодно).

Для заданной точки, чтобы определит на воде она или на земле, нужно провести линию до референсной точки, и посчитать количество пересечений с границами полиногов. Например, если референсная точка - земля, то нечётное поличество пересечений говорит о том, что заданная точка - на воде, а чётное - на земле.

Если у тебя есть прямоугольник, у него не пересечения с границами полиногов, то он (прямоугольник) или весь на земле, или весь на воде. Чтобы различить эти два сценария, мерешь произвольную точку прямоугольника (например, один из углов), и метобом описанным выше понимаешь, на земле или на воде, эта точка, а, следовательно, и весь прямоугольник.

Там могут быть граничные сценарии, например, если референсная точка лужит внутри прямоугольника или совпадает с его углом, но, думаю, разберёшься.

P. S. А если прямоугольник весь на земле, но посредине есть озеро: это считается доступ к воде? Мой способ позволяет определить только доступ к океанам, но не к озёрам.

P. P. S. А реки учитываются?