Мы можем разделить операцию на два концептуальных шага. Сначала удвоьте красные края. Во-вторых, взорвите вершины, инцидентные хотя бы одному красному краю.
Первый шаг может быть выполнен по одному краю за раз. Учитывая красный край e, создайте другое ребро e '. Для одной половины края e вставьте один край края e 'в качестве следующего полуребра с той же головой в порядке по часовой стрелке. Для другого половинного края e вставьте другой половинный край e 'в качестве следующего полуребра с той же головкой в направлении против часовой стрелки.
Второй шаг может быть выполнен за одну вершину за раз. Учитывая, что вершина v инцидентна хотя бы одному красному краю, сгруппируйте половинные края с головой v следующим образом. Разбейте этот круговой список (1) между каждой смежной парой красных полуребер, которые возникли из одного и того же исходного края (2) между каждой смежной парой белых ребер (смежные означает, что два половинных края следуют/предыдущие по часовой стрелке/против часовой стрелки) , Для каждого разлома создайте новый край. Соедините все вместе. (Это предполагает работу на концах сломанных деталей и новых ребер. Я думаю, что подробное описание на уровне детализации в этом ответе было бы бесполезным.)
Здравствуйте и спасибо. Пока это не имеет для меня никакого смысла. Я согласен, что первый шаг - вставить повторяющиеся ребра. Для меня, например, не имеет смысла: «Для другого половинного края e вставьте другой половинный край e 'в качестве следующего половинного края с той же головой в направлении против часовой стрелки». Для меня имеет смысл, что «внутренние» половинки e и e 'указывают друг на друга, создавая круговую пару ahlfedge, но почему «внешние»? Кроме того, «сращивание всего вместе» - это то, с чем я боролся в основном. – user1282931
Возможно, не очень четко объяснил, что этот ответ прочен. По существу: обычно, когда вы делаете фаску вершины (то, что Дэвид назвал взрывом), новый край создается между каждым режущим краем. В этом случае, после добавления новых новых красных краев, вы хотите создать ребро между двумя красными и двумя белыми спицами, а не между красным и белым спицами. На практике сначала создайте функцию удаления вершины, функцию вершины соединения (создайте границу между двумя вершинами), которая может быть использована для создания вершинной функции фаски. Последний должен пропустить создание края между красными и белыми спицами. – Xartec