Вопросы с тегами [geometry]

1

голосов
1

ответ
212

Просмотры

Повышение геометрия: определение Многоугольника

Не могли бы вы сказать мне, почему это определение полигона не работает? Пространство имен BG = подталкивание :: геометрии; ИНТ основной () {ЬурейеЕ Б.Г. :: Модель :: Точка point_type; ЬурейеЕ Б.Г. :: Модель :: многоугольник polygon_type; polygon_type Р; INT XI [] = {0,100,100,0,0}; INT уг [] = {0,0,100,100,0}; BG :: Append (P, Б.Г. :: сделать (* х * уг)); двойная зона = BG :: область (Р); станд :: соиЬ
Ella
1

голосов
0

ответ
232

Просмотры

Random Points in an n-Dimensional Hypersphere

Этот код Matlab, создает набор случайных точек, определенные декартовыми координаты и равномерно распределенных по внутренней части п-мерной гиперсферы радиуса г с центром в начале координат. источник здесь. очистить все CLC м = 20000; п = 2; г = 2; % // порождает круг границы С = [3 4]; % // центр [х] т = LINSPACE (0, 2 * пи, 100); х = г * соз (т) + С (1); у = г * Sin (т) + С (2); C_rep = repmat (С, м, 1); Х = randn (т, п); с2 = сумма (Х ^ 2,2); Х = Х * repmat (г * (RAND (м, 1) ^ (1 / п)) ./ SQRT (с2), 1, п.) + C_rep; %% Участок фигуры (1), CLF участок (х, у, 'б') выполнены на участке (С (1), С (2), 'г.', 'MarkerSize', 50)% центральная точка удержания на участке (Х (:, 1), X (:, 2), 'г', 'markersize', 2); оси равны; трансфокация; увеличить на; drawnow; SHG; ах = ось; Это выход: который не то, что я хочу. Как сделать пункты распределены вокруг центральной точки С? При п = 2, 3, 4, K Размеры Что s2 означает?
Shdotcom
1

голосов
1

ответ
60

Просмотры

Что делать, если коммивояжер путешествовал на самолете?

Это кажется интуитивно решить 2D задачи коммивояжера точка-к-точка на глаз с помощью жадного стратегии. Однако мы можем решить только ПБО на глаз, если график топографически точные, например, если А на В 10 и А-С составляет 10, то B в C не может быть 1000. Является ли жадная стратегия еще неоптимальным, когда мы подчиняемся 2D масштабирование, то есть путешествие на самолете? Ниже я сумел создать топографический точный пример, когда жадная стратегия действительно субоптимальный: Начиная с S: Жадный: SBCAS => 2,83 + 4 + 5 + 2,2 => 14,03 Оптимально: SABCS => 2,2 + 3 + 4 + 3,16 = > 12,36 есть ли что-то особенное в приведенном выше примере, который будет общим для всех неоптимальных жадных маршрутов? Может быть использована геометрия, чтобы минимизировать ошибку?
david_adler
1

голосов
1

ответ
133

Просмотры

Вращение линии развертки - сортировочные края

Я пытаюсь реализовать график видимости Ли. Там может быть п количество полигонов, где каждая сторона многоугольника является ребром. Скажем, существует точка p1, а половина вкладыша параллельно положительной оси х начинаются с p1. Мне нужно найти края, которые пересекаются по г, и хранить их в отсортированном порядке. Край, который пересекается первой линией г имеет более высокий приоритет, также край, который ближе имеет более высокий приоритет, но при взгляде> расстояние. Например, р1 = (0, 1), и многоугольник со следующими вершинами {(2, 4), (3,6), (5, 20)}. Края для этого многоугольника должны быть отсортированы как [((2, 4), (5, 20)), ((2,4), (3, 6)), ((3, 6), (5, 20) )]. Поэтому, как я могу сортировать эти края? (Если вы идете по ссылке и прочитать, что, я думаю, вы будете иметь лучшее представление о том, извините за мое объяснение). Мой премьер-идея: сортировать их по дальности и ангел от p1 до первой вершины ребра, с которыми сталкиваются г. Хотя, все вершины имеют более одного ребра (так как каждая вершина / край является частью полигона), и я не знаю, как сортировать эти два. Любые идеи или намеки будут оценены. Просто некоторые ссылки: https://taipanrex.github.io/2016/10/19/Distance-Tables-Part-2-Lees-Visibility-Graph-Algorithm.html И книга: Вычислительная геометрия алгоритмы и приложение.
Lukas Povilonis
1

голосов
1

ответ
241

Просмотры

FTA Catia R24 Associative Front view (VBA)

does anyone know how to create Associative Front View in FTA using VBA. I have short macro to create Front View based on the geometry from 3D but this view is isolated and I must manually change it to Associative. What I would like to have is Associative View created by macro. It is first step to perform macro for power copy. Bellow my code. Sub CATMain() Dim partDocument1 As PartDocument Set partDocument1 = CATIA.ActiveDocument Dim part1 As PART Set part1 = partDocument1.PART '-------------------------------------------------- 'Create Annotation Set Dim annotationSet1 As AnnotationSet Set annotationSet1 = part1.AnnotationSets.Add("ISO") 'Debug.Print annotationSet1.Name Dim theViewFactory As TPSViewFactory Set theViewFactory = annotationSet1.TPSViewFactory '-------------------------------------------------- 'Create reference plane from selection Dim ViewPlane As Reference Set Selection = partDocument1.Selection Selection.Clear Selection.Search ("name='Plane.6',all") 'Search plane by name Set ViewPlane = Selection.Item(1).Value 'Set plane from selection Selection.Clear '-------------------------------------------------- 'Create Front View Dim theView As TPSView Set theView = theViewFactory.CreateView(ViewPlane, 0) theView.Name = "FrontView" '-------------------------------------------------- 'Create dimension part1.Update End Sub
Sebastian
1

голосов
1

ответ
62

Просмотры

Как предотвратить SymPy с использования точных при вычислении рациональных перекрестков?

Я заметил, что мой Python 2.7 код медленно, потому что SymPy использует точные рациональные вместо поплавков как его численность. Мой код в основном вычисляет пересечения между линиями, плоскостями и подобными геометрическими объектами. Я нашел этот вопрос, в котором он объяснил, что вы можете ускорить создание геометрических объектов путем передачи оценки = False, что заставляет SymPy держать поплавки. Я сделал это для объектов, я пересекающиеся, хотя результат пересечения возвращается с использованием точных рациональным (в то время как я хочу, поплавков, даже если точность теряется). Например: >>> импорт SymPy как зр >>> L = sp.Line ((0,0), (1.1,1.1), оценка = False) >>> sp.Line ((1.1,0), (0 , 1,1), оценка = False) .intersection (L) [Point2D (11/20, 11/20)] Как я могу отключить точное вычисление? Альтернативная библиотека также будет рассмотрена.
squire
1

голосов
0

ответ
33

Просмотры

изменить положение наложения после увеличения на карте

Я работаю с картой, на которой я поставил накладку, чтобы выделить определенную области, теперь я хочу, чтобы увеличить карту в и и переместить накладку, так что он все еще над одной и той же областью. Карта отображается в WebView JavaFX и покрышка представляет собой многоугольник, который втягивается в группу, которая находится на панели в верхней части WebView. Теперь я пытаюсь вычислить правильную позицию для наложения, но я не могу понять, каким образом. Есть ли кто-то есть опыт там и, возможно, может мне точку в правильном направлении?
Samarek
1

голосов
2

ответ
154

Просмотры

OpenLayers рендеринга геометрии Canvas

Я видел пример «Визуализация геометрии на холсте»: вар холст = document.getElementById ( «холст»); вар vectorContext = ol.render.toContext (canvas.getContext ( '2d'), {размер: [100, 100]}); заливка вар = новый ol.style.Fill ({цвет: 'синий'}); вар ход = новый ol.style.Stroke ({цвет: 'черный'}); вар стиль = новый ol.style.Style ({заполнить: заполнить, инсульт: инсульт, изображения: новый ol.style.Circle ({радиус: 10, заполнить: заполнить, инсульт: инсульт})}); vectorContext.setStyle (стиль); vectorContext.drawGeometry (новый ol.geom.LineString ([[10, 10], [90, 90]])); vectorContext.drawGeometry (новый ol.geom.Polygon ([[[2, 2], [98, 2], [2, 98], [2, 2]]])); vectorContext.drawGeometry (новый ol.geom.Point ([88, 88])); Но что делать с геометрией в проекции EPSG: 4326 (или EPSG: 3857)? PS Я видел этот вопрос: «Как мы можем вынести OpenLayers 3 функции на холст, используя стиль, но не с помощью карты», но я не понимаю, что проекция кода работает. И уточнить, автор не дает мне низкую репутацию на StackOverflow.
1

голосов
0

ответ
241

Просмотры

Как оценить матрицы преобразования между двумя похожими изображениями

Я хочу, чтобы оценить матрицу преобразования между двумя изображениями, которые принимаются на одной и той же сцены с разных позиций. Я попробовал два метода: первый метод, связанные ссылки: https://docs.opencv.org/2.4/doc/tutorials/features2d/feature_homography/feature_homography.html https://docs.opencv.org/3.3.0/dc/d2c /tutorial_real_time_pose.html я использую извлечение ключевых точек, описаний и изображений матча, чтобы найти соответствующие точки между двумя изображениями, а затем использовать findHomography для вычисления матрицы. Тем не менее, это метод совпадения изображений не работает хорошо, хотя я использовал различные методы, указанные в приведенных выше ссылках. Второй метод, я пытался esimateRigidTransform. Тем не менее, он возвращает пустую матрицу для следующих два примера изображения. В доке функции, «Два растровых изображений. В этом случае, функция сначала находит некоторые особенности в Src изображении и находит соответствующие функции в Dst изображения. После этого задача сводится к первому случаю «Кажется, он использует подобные идеи как первый метод Мои вопросы:..? 1. Почему esimateRigidTransform возвращает пустую матрицу для таких похожих изображений 2. Есть ли лучший способ для вычисления матрицы преобразования между аналогичные изображения, которые принимаются на одной и той же сцены с разных позиций? Например, я могу пропустить обнаружения и соответствия шагов функции? Спасибо. Есть ли лучший способ для вычисления матрицы преобразования между подобными изображениями, которые принимаются на одной и той же сцены с разных позиций? Например, я могу пропустить функцию обнаружения и шаги матча? Спасибо. Есть ли лучший способ для вычисления матрицы преобразования между подобными изображениями, которые принимаются на одной и той же сцены с разных позиций? Например, я могу пропустить функцию обнаружения и шаги матча? Спасибо.
Jun Fang
1

голосов
1

ответ
34

Просмотры

How best to Implement Linked Variables?

Я реализую программу геометрии решателя, который будет пытаться решить для всех других измерений на чертеже с данными, которая дается (см ссылки на изображение) В такой фигуре, длина или измерение форм неявно связаны между собой. Например, если известно, длину прямоугольника А, знает длину прямоугольника B, потому что описание фигуры говорит прямоугольник А и В идентичны. И если известно diamater полукруга С, один также знает ширину прямоугольника А и B.Finally, диаметр полукруга C связан с его площади по площади = пи * (D / 2) ^ 2 Следовательно, хотелось бы реализовать алгоритм таким образом, что в тот момент, один из связанных переменных (например, площадь, длина, diamater, радиус) изменяется, остальные связанные переменные также изменяются соответствующим образом. Что, по вашему мнению, это лучший способ осуществить это? Могу ли я использовать, например, рекурсии для обновления через все ссылки на переменные или геттерных и инкубационные свойства, например? Я использую Python как мой предпочтительный язык. Благодарю.
Abel Tan
1

голосов
0

ответ
57

Просмотры

ThreeJS Vertex Drawing полный треугольник

есть вопрос в отношении с импорта моделей в threejs: как мы строим данные сетки? имеет данные сетки должны сделать что-то с режимом вытяжки threejs? есть специфический способ сломать такую ​​геометрию, что лучше всего построен обратно на threejs? В картине перекомпиляция сетки, сетка в зеленый цвета является один я ищу, чтобы восстановить в threeJS, созданном в носороге. Сетка в белом является то, что было создано rvta3c экспортера и загружены в threejs. Есть ли способ, чтобы расположить вершины таким образом, что я получаю такую ​​же насыщенную сетку на threeJS? Любой через это раньше, я застрял, и я ищу какой-то свет. редактировать 2 Добавлены некоторые изменения в DrawMode, чтобы выяснить реальную проблему, как было предложено @ TheJim01. Также изменен сетчатый материал, так что может быть проще, чтобы увидеть сетку.
Janan Tan
1

голосов
1

ответ
171

Просмотры

Таблица с координатами гексагональной сетки, которая охватывает мир

Глядя на реализацию в PostGIS для создания гексагональной сетки, которая охватывает всю планету, чтобы агрегированные данные по каждому шестиугольнику. Любой указатель в правильном направлении будет иметь большую помощь! Конечный продукт: - таблица, содержащая центральную точку для каждого шестиугольника в виде гексагональной сетки, которая охватывает весь мир. - В шестиугольники имеют фиксированную область
user9936632
1

голосов
0

ответ
34

Просмотры

более эффективный способ поиска через GeoJSON в два раза для контура Python

Что является наиболее эффективным (или Pythonic способом) для поиска в двойной цикл через GeoJSON файл? Я хотел бы, чтобы найти объект LineString, который начинается или заканчивается координаты равна координата точки. Я имею в виду, мне нужен первая итерация над точкой файла, то для перебрать LINESTRING файла и в случае, если координатах равна свалка его в новый файл GeoJSON. Вы можете увидеть мой код ниже: для J, feature2 в Перечислять (нав [ 'функции']): если feature2 [ 'свойства'] [ 'Gp'] в ( 'RTE', 'РТБ', 'РТА'): для я, особенность Перечислим (TRA [ 'функции']): сегмент = LineString ([Точка (функция [ 'геометрия'] [ "координаты"] [0]), пункт (функция [ 'геометрия'] [ "координаты"] [1])]), если точка (пои)! = Точечные (segment.coords [0]) и Point (пои)! = Точечный (segment.coords [1]): продолжать после этого я сделать некоторые расчеты с этими точками и складывать их в новый файл. Мой файл содержит точки ~ 10k и LINESTRING файл ~ 90K объектов и теперь обработка занимает больше суток. Я нашел подобную тему, но, кажется, не имеет никакого эффекта в моем случае я буду признателен за любые идеи о том, как процесс этот более элегантным и эффективным!
Jane
1

голосов
1

ответ
61

Просмотры

Какие расстояния к-значит заранее вычисляет, когда precompute_distances установлено значение Правда?

Я использую scikit-научиться бегать K-средства. Я посмотрел scikit учиться к-нуждаемости код, но я не понимаю, как к-значит заранее вычисляет расстояния заранее. Какие расстояния к-значит заранее вычисляет заранее, пока он не знает заранее значения центров?
pedro colombino
1

голосов
0

ответ
51

Просмотры

Расчет площади и области перекрытия точек данных в тройном участке?

Данные ниже иллюстрирует часть цветка массовых пропорции радужки цветка. Вопрос, который я борюсь с вычисляют площадь перекрытия и площадь точек данных в тройном участке. Я думал подойти к этой проблеме с помощью geom_mean_ellipse после нахождения доверительного эллипса солнечного света подвергается да или нет. Затем определение площади% которой каждый эллипс занимает в пределах треугольного участка, а затем определение% площади перекрытия между двумя эллипсами. Мне нужно руководство и помощь в кодировании области% и% площади перекрытия и потенциальных пакетов, которые я мог бы использовать. Солнечный свет Виды Sepal.mass Petal.mass Pistil.mass Да Iris 0,19 0,35 0,49 Да Диафрагма 0,26 0,31 0,42 Да Диафрагма 0,10 0,38 0,66 Да Iris 0,52 0,20 0,28 Да Диафрагма 0,15 0,44 0. 37 троичный график выше набора данных цветочных частей. ggtern (данные = dat3, АЕС (х = Petal.mass, у = Sepal.mass, г = Pistil.mass, цвет = Солнечный свет)) + geom_point () + geom_mean_ellipse Ternary участок цветочных частей:
Daniel Buttner
1

голосов
1

ответ
78

Просмотры

Простая точка-в-полигон-тест с последовательны поведения для кромок

При поиске испытаний точки в многоугольнике Я нашел один, описанный Dean Поуви здесь. Мне нравится подход, поскольку он может быть легко понят (raycast вдоль оси х), но я пришел через небольшую несогласованность с этим методом. При написании юнит-тестов для моей реализации я заметил, что при принятии квадратик как «Тест-Полигон» точек на левом и нижнем краю площади, отражаются в составе полигона, а точки на правой и верхней стороне многоугольника признаются как за пределами полигона. Вот небольшой рисунок, показывающий, что я имею в виду (+ не распознается как внутри, удвоился линии и х являются): + -------- + | | | | | | х ======== + Кто-нибудь знает, как я могу изменить алгоритм, чтобы показать последовательное поведение для точек на краю? Это не имеет значения, если края рассматриваются как внутри или нет,
Emil S.
1

голосов
3

ответ
58

Просмотры

Создать ограничивающий прямоугольник из двух точек с настраиваемой шириной

У меня есть две точки делая линию, я хочу увидеть, если точка ruffly на линии. Для этого мне нужно создать ограничивающий прямоугольник / прямоугольник, который имеет ширину D наружу / перпендикулярно к линии. Я следовал этому сайт для руководства, но, кажется, реализовал его неправильно. Любая помощь будет оценена. частный статическое BOOL IsInside (GPS Point1, GPS Point2) {GPS VectorV = новый GPS () {Долгота = Point1.Longitude - Point2.Longitude, широта = Point1.Latitude - Point2.Latitude}; GPS-VectorW = новый (GPS) {долгота = -1 / VectorV.Longitude, широта = -1 / VectorV.Latitude}; двойной W = Math.Sqrt (Convert.ToDouble (VectorW.Latitude * VectorW.Latitude) + Convert.ToDouble (VectorW. Долгота * VectorW.Longitude)); GPS-NewVector = новый (GPS) {долгота = Convert.ToDecimal (Convert.ToDouble (VectorW.Longitude) / Вт), широта = Convert.ToDecimal (Convert.ToDouble (VectorW.Latitude) / Вт),}; десятичное D = 5; GPS-DisplacmentVector = новый (GPS) {долгота = (D / 2) * NewVector.Longitude, широта = (D / 2) * NewVector.Latitude}; GPS-BPoint1 = новый (GPS) {долгота = Point1.Longitude + DisplacmentVector.Longitude, широта = Point1.Latitude + DisplacmentVector.Latitude}; GPS-BPoint2 = новый (GPS) {долгота = Point1.Longitude - DisplacmentVector.Longitude, широта = Point1.Latitude - DisplacmentVector.Latitude}; GPS-BPoint3 = новый (GPS) {долгота = Point2.Longitude + DisplacmentVector.Longitude, широта = Point2.Latitude + DisplacmentVector.Latitude}; GPS-BPoint4 = новый (GPS) {долгота = Point2.Longitude - DisplacmentVector.Longitude, широта = Point2.Latitude - DisplacmentVector.Latitude}; } Общественного частичного класса GPS {общественного десятичного Долгота {получить; задавать; } Общественного десятичного Широта {получить; задавать; } Общественных GPS-() {} общественного GPS (десятичная долгота, широта десятичной) {Долгота = долгота; Широта = широта; }} Широта - DisplacmentVector.Latitude}; } Общественного частичного класса GPS {общественного десятичного Долгота {получить; задавать; } Общественного десятичного Широта {получить; задавать; } Общественных GPS-() {} общественного GPS (десятичная долгота, широта десятичной) {Долгота = долгота; Широта = широта; }} Широта - DisplacmentVector.Latitude}; } Общественного частичного класса GPS {общественного десятичного Долгота {получить; задавать; } Общественного десятичного Широта {получить; задавать; } Общественных GPS-() {} общественного GPS (десятичная долгота, широта десятичной) {Долгота = долгота; Широта = широта; }}
J34245
1

голосов
0

ответ
57

Просмотры

Найти топ K наиболее распространенные места для гео пространственных данных в сервере SQL

У нас есть данные пользователя, которая является гео Пространственная в природе (лат, длинный). Мы используем сервер SQL для хранения этого (типа данных геометрии). Есть ли реализация получить чувство Top K самых популярных мест, посещаемых пользователем (данные гео). Скажем, мы возьмем радиус 100 м и рассмотреть все точки внутри них же место. Это в основном означает, кластеризация всех пользовательские местоположений и поиск наиболее наполненный кластер. Так же, как и для скалярных значений, мы делаем группу, на столе, чтобы узнать, какая запись происходит больше всего. Как я этого добиться для данных гео?
gonthe
1

голосов
1

ответ
159

Просмотры

Как получить вершины и ребра каждого многоугольника диаграммы Вороного с использованием MATLAB? [Дубликат]

Этот вопрос уже есть ответ здесь: Matlab: Как вывести вершины (координаты) многоугольников в диаграмме Вороного? 1 ответ У меня есть следующий код, чтобы нарисовать диаграмму Вороного; Х = [0.018504 0,5187; 0,23114 0,70406; ... 0,4447 0,37589; 0,45647 0,83682; 0,48598 ... 0,59816; 0,60684 0,95388; ... 0,7621 0,44282; 0,82141 0,02221; ... 0,8913 0,84074; 0,95013 0,95278]; [Vx, Vy] = Вороного (Х (:, 1), X (:, 2)); Assign_labels_to_all_points (Х, Х (:, 1), X (:, 2)); участок (VX, VY, '- к', 'ширина линии', 2); xlim ([- 0.2,1.2]); ylim ([- 0.2,1.2]); Это показано на диаграмме Вороного ниже: Итак, мой вопрос: Как получить вершины и ребра каждого многоугольника диаграммы Вороного? Например; Polygon X1 имеет 4 ребра и 4 вершины точек. Я хочу, чтобы получить значение этих вершин точек. Таким образом, для каждого полигона из 10 полигонов; Я хочу, чтобы получить его вершину значения и число его ребер.
Eman
1

голосов
1

ответ
39

Просмотры

Алгоритм: геометрическая форма может содержать другую форму

у нас есть алгоритм, который создает прямоугольную форму и вторую форму с номером неопределенным боковыми и которые могут иметь внутренние формы (пончик стиль, например) и цель создает алгоритм, который будет видеть, если прямоугольник может содержаться в геометрическом форма. программа в питоне и использует стройным. Сначала мы тестируем области и, если площадь прямоугольника может содержаться в форме, мы просто положить его в центре и мы тестируем. Если это не входит мы делаем поворот на один градус (к примеру) и продолжить испытание. после того, как 180 градусов, мы остановить вращение и переместить его с 1 cemtimeter (например) в spriral формы (чтобы сделать все позиции вокруг центра тяжести геометрической формы). Программа работает хорошо, но для той или иной форме это относительно медленно (несколько минут расчета) не является д.в. не профессионал в тригонометрии я прошу вас о помощи, чтобы ускорить лечение. У вас есть какие-нибудь предложения? благодарю вас. Exemple замедляться: http://image.noelshack.com/fichiers/2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png http://image.noelshack.com/fichiers/2018/51/5/1545390818-htadvwcbpzmewfdbzrq7.png http://image.noelshack.com/fichiers/2018/51/5/1545390818-ojadvwcbpzmewfdbzqg6.png http://image.noelshack.com/fichiers/2018/51/5/1545390818-3dadvwcbpzmewfdbzrm7.png
Vianney Bailleux
1

голосов
2

ответ
52

Просмотры

Минимум Итерации рисунок правильной формы ( «черепаха»)

Я пытаюсь найти наименьшее число итераций, необходимых для формирования правильного многоугольника без моего «черепаха» (форма) повторяя его движения .... и заметил странное (?) Отношения, которые я не могу точно определить. Если вы запустите приведенный ниже код и поэкспериментировать с различными значениями (Примечание: убедитесь, что для замены «х» параметров и «п» с действительными числами - по вашему выбору): импорт черепаха четкости draw_square (): шп = turtle.Screen () шп .bgcolor ( "черный") микрофон = turtle.Turtle () mike.shape ( "черепаха") mike.color ( "желтый") mike.speed (100) кол = 0, а граф <п # заменить п с номером! mike.forward (100) mike.right (90) mike.forward (100) mike.right (90) mike.forward (100) mike.right (90) микрофона. вперед (100) mike.right (х) # заменить й с номером! если __name__ == «__main__»: draw_square () Вы найдете черепаха движется по круговой (-ish) движения. Например, вы заметите, что при х = 100, мин. значение п, необходимого для формирования правильной формы составляет 36 (так как 100 ° - 90 ° = 10 °, 360 ° / 10 ° = 36). при х = 10, например. Дальнейшие тесты показывают: х = 1, (мин.) П = 360 # 360 ° / 1 ° = 360 х = 5, п = 72 # 360 ° / 5 ° = 72 х = 9, (мин.) (Мин.) п = 10 * # 360 ° / 9 ° = 10 * х = 10, (мин.) п = 9 * # 360 ° / 10 ° = 9 * х = 45, (мин.) п = 8 # 360 ° / 45 ° = 8 х = 90, (мин.) п = 1 * # 360 ° / 90 ° = 4 * ## Примечание: нет obvs. решение для п, если й не фактор 360 .... *: Как ни странно, вы должны разделить результат на 4, чтобы получить мин. Значение п для некоторых чисел. Я сначала думал, что это было связано с кратными 9 или четырех поворотов на площади, но [выше] привело меня отвергнуть мои гипотезы. Так кто-нибудь есть какие-либо идеи лучше, как к универсальному правилу? Приветствия.
mikerover
1

голосов
0

ответ
81

Просмотры

GLSL - ничья изображение с нужной проекции

Я пытаюсь добавить «наклейку» на эквидистантном изображении. Параметры у меня есть угол наклейки (рыскание, тангаж, крен), а также его размер в пикселях, и равнопромежуточный размер изображения (всегда соотношение 2: 1). Пример с этой наклейкой (не против фона): Если положить наклейку на нижней части сферы, шейдер должен быть в состоянии получить что-то вроде этого:
Xys
1

голосов
3

ответ
48

Просмотры

Правильный способ вычисления площади треугольника из 3-х вершин

Это правильный способ вычислить площадь треугольника учитывая три треугольника точки / вершины? Вершины никогда не будут отрицательные значения. Защиту triangle_area (три): x1, y1, x2, y2, x3, y3 = три [0] [0], три [0] [1], три [1] [0], три [1] [1], три [2] [0], три [2] [1] вернуть 0,5 * (((х2-х1) * (y3-y1)) - ((x3-x1) * (y2-y1)))
Jake M
1

голосов
0

ответ
14

Просмотры

Найти пересечение 3D выпуклой оболочки PointCloud и 2D плоскости

Учитывая множество точек в трехмерном пространстве, например, в качестве Numpy массива формы (п, 3), где второй размер кодирует х, у и г-координаты каждой точки в PointCloud, я знаю, что я могу найти его выпуклую оболочку используя scipy.spatial.ConvexHull. То, что я бы дополнительно хотел бы сделать, это получить вершины двумерного многоугольника, который описывает сечение этой выпуклой оболочки при произвольном значении г. Это, мне кажется, что это должно быть вычислительно возможно, есть модуль питона, который уже реализует такие вещи?
Peter
1

голосов
1

ответ
350

Просмотры

GML критерии использования, или, что правильный путь для использованияКонтактной GML (География XML)

Мы хотим использовать GML в нашем приложении; Это приложение ГИС, которое имитирует объекты реального слова (т.е. трубы, дороги и т.д.) в среде виртуальной реальности. В настоящее время мы проводим и сохранить геометрию в AutoCAD DWGs, но в будущем мы хотим изменить базу данных. Мне действительно нужно, чтобы найти ответы на эти вопросы. 1- Является GML собственно для кодирования файла геометрии (CAD, форма, ..), который содержит более 100000 особенности (Что такое соотношение между объемом данных и производительности GML, есть ли какие-либо ограничения?) 2-, как мы можем проверить правильность данные геометрии, например, как GML Поймите, что 2 внутренних границы многоугольника пересекаются друг с другом, (по схеме? специальным библиотеки? Или это просто проверить GML по схеме без проверки данных внутренних координат) 3-Если я хочу использовать DB , может хранить данные GML в XML Berkeley Database? Спасибо за внимание
AliPST
1

голосов
1

ответ
184

Просмотры

Оценка кривой в Java2D

Существуют методы оценки кубических или квадратичных кривых Java2D в данный момент времени т? Я знаю, что алгоритм прост, но я подозреваю, что есть метод, который уже в Java.
Torsten Marek
1

голосов
1

ответ
110

Просмотры

что вращение конвенции Эйлера в truevision3d?

В какой оси порядка являются углы Эйлера повернута в графической API истинного видения 3d (tv3d)? Я не смог найти его в какой-либо документации.
Fredriku73
1

голосов
2

ответ
445

Просмотры

Найти самую большую прямоугольную область, состоящую только из 2-х типов письма в данной плате MxN

Возможный дубликат: найти большой алгоритм подматрицы мне нужно помочь с проблемой. Учитывая доску MxN представлена ​​с М букв (AZ) в каждой из N строк, я должен найти самую большую область, в которой есть только два типа букв в нем. Область должна иметь прямоугольную форму. Вот пример: 4x4: АААА ABBC BBCA DCAA Выходной сигнал будет 6, потому что самая большая прямоугольная область, в которой существует только два типа букв в верхнем углу ААА-ABB, есть только А и В (2 типе).
ggg
1

голосов
1

ответ
1.2k

Просмотры

Расчет кубических Безье T значение, где касательная перпендикулярна к анкерной линии

Проект кубическую Безье p1, p2, p3, p4 на p1 линии, стр.4. Когда P2 или P3 не выступает на отрезок линии между p1 и p4, кривая будет выпирать из опорных точек. Есть ли способ для вычисления значения T, где касательные кривой является перпендикулярной к анкерной линии? Это также может быть указано как нахождение значений Т, где прогнозируемое кривая самый дальний от центра p1 сегмента линии, p4. Когда P2 и P3 проекта на отрезок линии, то решения равны 0 и 1 соответственно. Есть уравнение для решения более интересный случай? Значение Т-видимому, зависит только от расстояния отображенных контрольных точек из сегмента анкерной линии. Я могу определить значение по уточнению догадок, но я надеюсь, что есть лучший путь. Изменить: Начиная с p1, .., p4 в 2d с значения x1, y1, ..., x4, y4 Я использую следующий код, основанный на ответ от Филиппа: ах = x4 - x1; д = у4 - у1; d2 = дх * дх + ду * ду; р1 = ((x2-x1) * дх + (у2-у1) * ду) / d2; р2 = ((х3-х1) * дх + (y3-y1) * ду) / d2; TR = SQRT (р1 * р1 - р1 * р2 - Р1 + Р2 * р2); t1 = (2 * P1 - P2 - тр) / (3 * p1 - 3 * р2 + 1); t2 = (2 * р1 - р2 + тр) / (3 * р1 - 3 * р2 + 1); В образце я смотрел, t2 должен быть вычтен от 1,0 до того, как было правильно.
drawnonward
1

голосов
1

ответ
988

Просмотры

creating and intersecting hexahedrons with CGAL

Using the Python bindings for CGAL, I can't work out how create a hexahedron, nor how to calculate its intersection with another hexahedron. I have 8 input points, which are the corners of the hexahedron: My code does this: P = Polyhedron_3() bottom = P.make_tetrahedron(p[0],p[1],p[2],p[3]) top = P.make_tetrahedron(p[4],p[5],p[6],p[7]) left = P.make_tetrahedron(p[0],p[1],p[5],p[4]) right = P.make_tetrahedron(p[3],p[2],p[6],p[7]) front = P.make_tetrahedron(p[4],p[7],p[3],p[0]) back = P.make_tetrahedron(p[1],p[2],p[6],p[5]) but when I count the points in the resulting polyhedron there are 24 - each face is unjoined with its neighbours. How can I build a solid hexahedron using Python CGAL? And, finally, having successfully constructed two such polyhedron, how do I calculate their intersection?
Will
1

голосов
1

ответ
575

Просмотры

Как найти ориентацию кривой Безье?

Как найти ориентации (CW или CCW) замкнутой кривой, которая образованный Безье кубических сегментов?
Nick
1

голосов
1

ответ
2.2k

Просмотры

Как можно эффективно обнаружить обнаружение пересечения луча и сетки?

У меня есть несколько 3d модели в приложении OpenGL ES для iPhone и в какой-то момент я хочу пользователю коснуться экрана и действовать на них. Проблема заключается в том, чтобы признать, что, помимо тех, формирующиеся на экране, была затронута. Для достижения этой цели я вычислил луч выбора, как это было предложено OpenGL FAQ, и теперь я хочу, чтобы обнаружить, если она пересекается с любой моделью. Я посмотрел на исходный код Irrlicht и обнаружил, что я могу вычислить пересечение между лучом и каждой отдельной модели треугольника (они делают это путем расчета, если луч пересекает треугольник плоскость первой, а затем, видя, попадает ли точка пересечения в треугольник, но есть более эффективный способ сделать так, как указано здесь). Мой вопрос: мне действительно нужно, чтобы сделать все это вычисление для каждого отдельного треугольника каждой модели? Isn»
rano
1

голосов
3

ответ
1.8k

Просмотры

Нахождение диагоналей многоугольника

Учитывая вогнутый многоугольник (без самопересечений), с его узлами по часовой стрелке, как мы можем определить все его внутренние диагонали (те, которые находятся внутри многоугольника)? Я заинтересован в растворе, который не использует какие-либо функции тригонометрические. Фон и то, что я пробовал: В моем классе вычислительной геометрии мы получили следующий алгоритм для проверки того, [р, р ^] является внутренней диагональю многоугольника p0, p1, ... р-1: тест, если [р, р ^] пересекает ребро многоугольника, который не примыкает к нему. Если да, то это не является внутренней диагонали. Если нет, то перейти к шагу 2. Если р является выпуклой точки (р-1, пи, пи + 1 сделать правый поворот), а затем [р, р ^] является внутренней диагональю тогда и только тогда р, р ^, р + 1 и р , р-1, р ^ сделать левый поворот. если р не является выпуклой точкой (пи-1, пи, пи + 1 сделать левый поворот), а затем [р, р ^] является внутренней диагональю тогда и только тогда р ^, рг-1, пи сделать левый поворот. Этот алгоритм был дан нам для алгоритма триангуляции с участием ушной вырезки. Я реализовал этот алгоритм и, кажется, работает хорошо, но загвоздка в том, что алгоритм Ухо отсечения использует только диагоналей вида [пи, пи + 2]. Тем не менее, рассмотрят грубую силу алгоритма триангуляции, который выбирает все непересекающиеся диагонали. Используя то, что я описал, как подпрограмма для проверки внутренних диагоналей (вместе с методом сегмента пересечения), я получаю следующий результат: Легко проверить, что алгоритм я отправил отвергает внутренний диагональный [3, 6], когда на самом деле он не должен «т: 3 не является выпуклой точкой, а 6, 5, 3 сделать поворот направо вместо поворота налево, так что он отвергается. Следует отметить, что при использовании алгоритма ушного отсечения, этот многоугольник правильно триангулирован. Я заинтересован в том, как этот алгоритм может быть приспособлен для обнаружения всех диагоналей в многоугольник. У меня не было никакой удачи при получении его на работу. Я также нашел другие проблемы, связанные с этим методом, например, многоугольники, для которых внешние диагонали нарисованные. Опять же, те, работать с алгоритмом ушного отсечения. Мы никогда не говорили, что этот метод применим только для особой формы диагоналей однако, поэтому я ищу для уточнений. Примечание: Я не мог решить, стоит ли размещать это на math.stackexchange.com или здесь, поскольку вычислительные сделки геометрии в некоторой степени равной степени как с программированием и математикой, но я чувствовал, что программисты могут быть более знакомы с таким родом алгоритмов, чем математики , так как кто-то, вероятно, на самом деле реализуется это в какой-то момент. Я также нашел другие проблемы, связанные с этим методом, например, многоугольники, для которых внешние диагонали нарисованные. Опять же, те, работать с алгоритмом ушного отсечения. Мы никогда не говорили, что этот метод применим только для особой формы диагоналей однако, поэтому я ищу для уточнений. Примечание: Я не мог решить, стоит ли размещать это на math.stackexchange.com или здесь, поскольку вычислительные сделки геометрии в некоторой степени равной степени как с программированием и математикой, но я чувствовал, что программисты могут быть более знакомы с таким родом алгоритмов, чем математики , так как кто-то, вероятно, на самом деле реализуется это в какой-то момент. Я также нашел другие проблемы, связанные с этим методом, например, многоугольники, для которых внешние диагонали нарисованные. Опять же, те, работать с алгоритмом ушного отсечения. Мы никогда не говорили, что этот метод применим только для особой формы диагоналей однако, поэтому я ищу для уточнений. Примечание: Я не мог решить, стоит ли размещать это на math.stackexchange.com или здесь, поскольку вычислительные сделки геометрии в некоторой степени равной степени как с программированием и математикой, но я чувствовал, что программисты могут быть более знакомы с таким родом алгоритмов, чем математики , так как кто-то, вероятно, на самом деле реализуется это в какой-то момент. Мы никогда не говорили, что этот метод применим только для особой формы диагоналей однако, поэтому я ищу для уточнений. Примечание: Я не мог решить, стоит ли размещать это на math.stackexchange.com или здесь, поскольку вычислительные сделки геометрии в некоторой степени равной степени как с программированием и математикой, но я чувствовал, что программисты могут быть более знакомы с таким родом алгоритмов, чем математики , так как кто-то, вероятно, на самом деле реализуется это в какой-то момент. Мы никогда не говорили, что этот метод применим только для особой формы диагоналей однако, поэтому я ищу для уточнений. Примечание: Я не мог решить, стоит ли размещать это на math.stackexchange.com или здесь, поскольку вычислительные сделки геометрии в некоторой степени равной степени как с программированием и математикой, но я чувствовал, что программисты могут быть более знакомы с таким родом алгоритмов, чем математики , так как кто-то, вероятно, на самом деле реализуется это в какой-то момент.
IVlad
1

голосов
1

ответ
55

Просмотры

Получить позиционные данные из индекса на 2D-поле

Скажем, у меня было три переменные (на 2D-поле): NumSquares, WindowSize (оба Х и Y имеет это значение), Индекс Так, если, например, NumSquares было 8, WindowSize 256 и индекс был на 64; Как бы алгоритм, чтобы получить позиционные данные из этих переменных смотрите?
Marcus Hansson
1

голосов
1

ответ
1.3k

Просмотры

Пересечение между окружностью и осями выровнены прямоугольником

Я пишу конвертер для данных 2D геометрии. Один из элементов, которые я должен преобразовать дуга. В исходной системе дуга описывается с двумя осями выровнены прямоугольниками. Первый прямоугольник является BoundingBox для круга из которых дуга является частью. Второй прямоугольник является BoundingBox для самой дуги. Это ограничение, что BoundingBox дуги должны пересекать два ребра BoundingBox круга. Я знаю координату верхних левых и нижних правых точки каждого прямоугольника. Целевая система описывает дугу следующим образом: прямоугольник представляет собой ограничивающий прямоугольник вокруг окружности которого дуга является частью. До сих пор это то же самое, что и выше. Тогда у меня есть две точки, обозначающей начальные и конечные точки дуги. Обе точки должны быть точно на окружности «края». Вопрос в том: вы видите простой способ вычислить начальную и конечную точку дуги? Я уже видел этот вопрос, но это кажется действительно сложным. Возможно, есть более простой способ сделать это ... Мои мысли до сих пор: Кажется, я должен вычислить пересечение ребер BoundingBox дуги с окружностью. Возможны два случая (из-за ограничений, упомянутых выше): только одно ребро пересекается с кругом или два ребра пересекаются с кругом. Кроме того, все остальные ребра всегда будут находиться вне круга. Обновление: начальные и конечные точки разрезать круг на две части. Какой из двух частей, как рисовать дуги, определяется порядком начальной и конечной точек. Дуга всегда рисуется против часовой стрелки от начала до конечной точки. Возможно, есть более простой способ сделать это ... Мои мысли до сих пор: Кажется, я должен вычислить пересечение ребер BoundingBox дуги с окружностью. Возможны два случая (из-за ограничений, упомянутых выше): только одно ребро пересекается с кругом или два ребра пересекаются с кругом. Кроме того, все остальные ребра всегда будут находиться вне круга. Обновление: начальные и конечные точки разрезать круг на две части. Какой из двух частей, как рисовать дуги, определяется порядком начальной и конечной точек. Дуга всегда рисуется против часовой стрелки от начала до конечной точки. Возможно, есть более простой способ сделать это ... Мои мысли до сих пор: Кажется, я должен вычислить пересечение ребер BoundingBox дуги с окружностью. Возможны два случая (из-за ограничений, упомянутых выше): только одно ребро пересекается с кругом или два ребра пересекаются с кругом. Кроме того, все остальные ребра всегда будут находиться вне круга. Обновление: начальные и конечные точки разрезать круг на две части. Какой из двух частей, как рисовать дуги, определяется порядком начальной и конечной точек. Дуга всегда рисуется против часовой стрелки от начала до конечной точки. только один край пересекается с окружностью или два ребра пересекаются с окружностью. Кроме того, все остальные ребра всегда будут находиться вне круга. Обновление: начальные и конечные точки разрезать круг на две части. Какой из двух частей, как рисовать дуги, определяется порядком начальной и конечной точек. Дуга всегда рисуется против часовой стрелки от начала до конечной точки. только один край пересекается с окружностью или два ребра пересекаются с окружностью. Кроме того, все остальные ребра всегда будут находиться вне круга. Обновление: начальные и конечные точки разрезать круг на две части. Какой из двух частей, как рисовать дуги, определяется порядком начальной и конечной точек. Дуга всегда рисуется против часовой стрелки от начала до конечной точки.
McNumber
1

голосов
1

ответ
1.6k

Просмотры

Is there a good way to check if segments overlap in a PathFigure in WPF?

Я работаю над управлением в WPF для рисования фигур площади, используя различные типы сегментов (дуги, Безье, отрезок) и хочу, чтобы удержать их от создания фигур площади, которые являются сложными. То есть формы, где пересекаются ребра. Я работаю с PathGeometry генерируемого преобразователем, но после того, как преобразователь закончил XAML будет выглядеть следующим образом XAML. При отсутствии совпадений: С наложений (должен провалить тест): В приведенном выше случае, второй и третий отрезки и перекрывают последний сегмент. Есть ли способ, мне не хватает, чтобы проверить, если путь пересекается с самим собой в любой момент в WPF?
Ross Graeber
1

голосов
2

ответ
328

Просмотры

Objective C Игра Geometry вопрос

Я создаю простую игру и достиг точки, где я чувствую себя беспомощным. Я был хорош в геометрии, но это было давно еще в школе, теперь пытается обновить свой ум. Скажем, у меня есть IPad экрана. х положение объекта в одном данный момент время и х позиции в другой момент времени, сохраненном в 2-х переменных. Вопрос: как найти третью позицию объекта в конце экрана отдается предыдущие 2 позиции, рассматривая объект движется в том же направлении (линия) от точки 1 до точки 2. Заранее спасибо.
Rouslan Karimov
1

голосов
1

ответ
260

Просмотры

Круг столкновения ошибки, круги орбиты неподвижных кругов

Я работаю ниже код для столкновения двух кругов, но теперь у меня есть специальные круги, которые не должны двигаться когда-либо. При попытке применить их с существующим кодом, движущиеся круги начинают орбиту вокруг статических «болтах», неподвижные круги (когда я говорю орбиту, я имею в виду круг вращается вокруг круга, касаясь его на некоторое время, пока он не дойдет до с другой стороны, а затем продолжается на его первоначальном направлении). Я попытался сделать часть кода для работы статических кругов (см огромного закомментирована раздела), но это только половина работало. Мои нормальные размера круги работают хорошо, большую часть времени, но иногда это еще на орбите. Кроме того, у меня есть еще один специальный круг, который не зависит от трения и меньше, и что почти всегда орбит. Кто-нибудь знает, что моя проблема? Я наполовину понять математику здесь происходит, Я получил его от какой-то Gamasutra статьи. // перемещаем их друг от друга, чтобы они не пересекались больше плавать расстояние = (поплавок) Math.Sqrt (((circleA.getCenterX () - circleB.getCenterX ()) * (circleA.getCenterX () - circleB.getCenterX ()) ) + ((circleA.getCenterY () - circleB.getCenterY ()) * (circleA.getCenterY () - circleB.getCenterY ()))); плавать разделения = (circleA.getRadius () + circleB.getRadius ()) - расстояние; плавать xSepA = разделение * (circleA.getCenterX () - circleB.getCenterX ()) / расстояние / 2; // расстояние для перемещения в circleA х реж плавать ySepA = разделение * (circleA.getCenterY () - circleB.getCenterY ()) / расстояние / 2; // расстояние для перемещения в реже у поплавка xSepB = разделительные * (circleB.getCenterX () - circleA.getCenterX ()) / расстояние / 2; // В то же самое для флоат ySepB = разделение * (circleB.getCenterY () - circleA.getCenterY ()) / расстояние / 2; если (circleA. isStatic ()) {xSepA = 0; ySepA = 0; xSepB = разделение * (circleB.getCenterX () - circleA.getCenterX ()) / расстояние; // В то же самое для ySepB = разделительного * (circleB.getCenterY () - circleA.getCenterY ()) / расстояние; } Если (circleB.isStatic ()) {xSepA = разделение * (circleA.getCenterX () - circleB.getCenterX ()) / расстояние; ySepA = разделение * (circleA.getCenterY () - circleB.getCenterY ()) / расстояние; xSepB = 0; ySepB = 0; } // перемещая их circleA.setX (circleA.getX () + xSepA); circleA.setY (circleA.getY () + ySepA); circleB.setX (circleB.getX () + xSepB); circleB.setY (circleB.getY () + ySepB); // скорость изменения подпрыгивать Vector2f Va = circleA.getVelocityVector (); Vector2f VB = circleB.getVelocityVector (); Vector2f Vn = MathUtil.sub (circleA.getPositionVector (), circleB.getPositionVector ()); vn.normalise (); Поплавок аа = va.dot (ип); плавать аб = vb.dot (Vn); плавать optimizedPA = (2f * (аа - AB)) / (circleA.getMass () + circleB.getMass ()); плавать optimizedPB = (2f * (аb - аа)) / (circleA.getMass () + circleB.getMass ()); Vector2f newVA = MathUtil.sub (ва, MathUtil.scale (уп, optimizedPA * circleB.getMass ())); Vector2f newVB = MathUtil.sub (VB, MathUtil.scale (уп, optimizedPB * circleA.getMass ())); // если (circleA.isStatic ()) {// optimizedPB = (2f * (аb - аа)) / (circleB.getMass ()); // newVA = ва; // newVB = MathUtil.sub (VB, MathUtil.scale (уп, optimizedPB)); // System.out.println (VB + "" + newVB); //} иначе, если (circleB.isStatic ()) {// optimizedPA = (2f * (аа - AB)) / (circleA.getMass () + circleB.getMass ()); // newVA = MathUtil.sub (ва, MathUtil.scale (уп, optimizedPA)); // newVB = VB; // System.out. Println (ва + "" + newVA); //} circleA.setVX (newVA.getX ()); circleA.setVY (newVA.getY ()); circleB.setVX (newVB.getX ()); circleB.setVY (newVB.getY ());
Rahat Ahmed
1

голосов
4

ответ
4.2k

Просмотры

как заказать вершины в простом, не выпуклого многоугольника

У меня есть проблема, когда у меня есть ряд точек для простого, без выпуклого многоугольника (я надеюсь, что у меня есть терминология правильно). Но точки не обязательно в порядке (то есть, по часовой стрелке или против часовой стрелки). Для рисования API Flash-правильно нарисовать область заливки, мне нужно, чтобы иметь эти успехи точки в порядке вокруг края (чтобы, наконец, соединиться с начальной точкой). Есть ли какой-нибудь способ, которым я могу сортировать мой список декартовых координат в любом часовой стрелке или против часовой стрелки, так что я могу нарисовать свою форму от точки к точке без «поднимая перо»? Я видел один пост для сортировки 4-точек многоугольника, но я думаю, что это был особый случай, только 4 очка. Мои формы имеют на минимум 6 баллов. В списке, каждая запись гарантированно быть смежными (в любом или против часовой стрелки для того,) по меньшей мере одного из своих соседей (либо предыдущей точки или ниже). Например: A, B, D, C ... или B, A, D, C ... но не A, C, B, D ... (Мне нужно сортировать так что я получаю либо A, B, C , D или D, С, В, А). Я нашел этот пост, но это, кажется, без ответа: список точек сортировки в производительность CPU многоугольника является проблемой. Но даже «медленно» решение, если это легко реализовать и понять (для следующего программиста) может быть нормально, если я могу придумать эффективный механизм кэширования. Я хотел бы прикрепить картинку, чтобы показать пример того, что мне нужно сделать, но пока не имеет 10 очков репутации. Во всяком случае, если бы я имел средства для сортировки вершин 3, например, в этом списке многоугольников, это было бы идеально: Http: //upload.wikimedia. орг / википедия / Обще / 1 / 1f / Assorted_polygons.svg Я очень признателен за любую помощь и все, спасибо! EDIT: Я действительно могу гарантировать центральную точку для системы координат - это будет в центре экрана. Все точки будут находиться в диапазоне от 0 и экрана ширина / высота (происхождение, очевидно, ширина / высота / 2). Я не могу гарантировать, что полигон будет содержать исходную точку в его интерьере. Это редкое исключение случая, но мне нужно объяснить. Кстати, причина моих сегментов не обязательно в порядке, потому что они генерируются с использованием Conrec: http://paulbourke.net/papers/conrec/ (они контурные линии). Приказываю отрезки контура, генерируемые Conrec, используя следующее: Как собрать массив (ы) непрерывных точек на линии контура с использованием Conrec Проблема теперь случай для внешних контурных линий на карте. Те будут пересекаться с краем карты (т.е. не образует замкнутый многоугольник). В этом случае, я обвести края карты границ, пока я или повторно соединиться с тем, где началась линия (на крае карты) или родственная линия входит в карте (повторение, пока я в конце концов вернуться к своему начальному точка). Тогда я могу нарисовать область и получить заливку API для работы. Надеюсь, что эта информация поможет. Я полагал, что лучше всего сделать было бы сформировать упорядоченный список вершин многоугольника, но, возможно, другой подход называется для. Тогда я могу нарисовать область и получить заливку API для работы. Надеюсь, что эта информация поможет. Я полагал, что лучше всего сделать было бы сформировать упорядоченный список вершин многоугольника, но, возможно, другой подход называется для. Тогда я могу нарисовать область и получить заливку API для работы. Надеюсь, что эта информация поможет. Я полагал, что лучше всего сделать было бы сформировать упорядоченный список вершин многоугольника, но, возможно, другой подход называется для.
jpwrunyan
1

голосов
2

ответ
2.6k

Просмотры

C # - Найти координаты, чтобы расширить линию на определенное количество километров

Мне нужно вычислить координаты точки, которая простирается существующую линию на определенное количество километров. С учетом ввода: (1) начало и окончание координаты существующей линии (в градусах). (2) длина (км) от того, как далеко новая линия должна распространяться мимо «окончания» координата дано выше. Выход: Широта и долгота (в градусах) точки, которая расширяет линию я в настоящее время есть метод, который вычисляет отношение между 2 наборами координат, если это помогает. У меня также есть метод, который находит точку на линии, но это точка между 2 наборами заданных координат, а не расширение существующей линии. Я не могу показаться, чтобы выяснить, как изменить что для моих нужд. Кроме того, я использую WGS-84, поэтому (из моего понимания) кривизна земли не должна быть принята во внимание. Любая помощь будет признателен, спасибо! Редактировать: Ну проблема, которую я увидел, что расстояние было километров, а координаты были GPS градусов. Но я только закончил с использованием векторов для ее решения: C = B - к (А - В), где к = доля расстояния для размещения C Примечание: к = 1,5, в моем случае, потому что я хотел новую точку, чтобы быть одна половина расстояние за пределами исходной линии. 0 будет в точке А и 1 в точке Б. верю. Я график его в Google Earth, и это, кажется, работает.
Tara

Просмотр дополнительных вопросов

Связанные вопросы