Построение разверток поверхностей геометрических тел. Построение разверток поверхностей геометрических тел Пример нахождения длинны окружности

Существует несколько очень простых, но не эффективных способов преобразования окружностей в растровую форму. Например, рассмотрим для простоты окружность с центром в начале координат. Ее уравнение записывается как x 2 + y 2 =R 2 . Решая это уравнение относительноy , получим

Чтобы изобразить четвертую часть окружности, будем изменять x с единичным шагом от 0 доR и на каждом шаге вычислятьy . Вторым простым методом растровой развертки окружности является использование вычисленийx иy по формуламx =R cos α,y =R sinα при пошаговом изменении угла α от 0до 90.

Для упрощения алгоритма растровой развёртки стандартной окружности можно воспользоваться её симметрией относительно координатных осей и прямых y = ±x ; в случае, когда центр окружности не совпадает с началом координат, эти прямые необходимо сдвинуть параллельно так, чтобы они прошли через центр окружности. Тем самым достаточно построить растровое представление для 1/8 части окружности, а все оставшиеся точки получить симметрией (см. рис. 2 .15).

Рис. 2.15. Восьмисторонняя симметрия

Рассмотрим участок окружности из второго октанта x Є . Далее опишем алгоритм Брезенхейма для этого участка окружности.

На каждом шаге алгоритм выбирает точку P i (x i , y i ), которая является ближайшей к истинной окружности. Идея алгоритма заключается в выборе ближайшей точки при помощи управляющих переменных, значения которых можно вычислить в пошаговом режиме с использованием небольшого числа сложений, вычитаний и сдвигов.

Рассмотрим небольшой участок сетки пикселов, а также возможные способы (от A до E) прохождения истинной окружности через сетку (рис. 2 .16).

Предположим, что точка P i - 1 была выбрана как ближайшая к окружности приx =x i- 1 . Теперь найдем, какая из точек (S i илиT i ) расположена ближе к окружности приx =x i- 1 + 1.

Рис. 2.16. Варианты прохождения окружности через растровую сетку

Заметим, что ошибка при выборе точки P i (x i , y i ) была равна

D(P i ) = (x i 2 + y i 2) –R 2 .

Запишем выражение для ошибок, получаемых при выборе точки S i илиT i :

D(S i ) = [(x i-1 + 1) 2 + (y i-1 ) 2 ] – R 2 ;

D(T i ) = [(x i-1 + 1) 2 + (y i-1 – 1) 2 ] – R 2 .

Если | D(S i ) | ≥ |D(T i ) |, тоT i ближе к реальной окружности, иначе выбираетсяS i .

Введем d i = |D(S i ) | – |D(T i ) |.

T i будет выбираться приd i ≥ 0, в противном случае будет устанавливатьсяS i .

Опуская алгебраические преобразования, запишем d i иd i + 1 для разных вариантов выбора точкиS i илиT i .

D 1 = 3 – 2R .

Если выбирается S i (когдаd i < 0), тоd i + 1 =d i + 4x i -1 + 6.

Если выбирается T i (когдаd i ≥ 0), тоd i + 1 =d i + 4 (x i - 1 –y i - 1) + 10.

Существует модификация алгоритма Брезенхейма для эллипса.

      1. Закраска области, заданной цветом границы

Рассмотрим область, ограниченную набором пикселей заданного цвета и точку (x, y ), лежащую внутри этой области.

Задача заполнения области заданным цветом в случае, когда эта область не является выпуклой, может оказаться довольно сложной.

Простейший рекурсивный алгоритм:

void PixelFill(int x, int y, int border_color, int color)

int c = getpixel(x, y);

if ((c != border_color) && (c != color))

putpixel(x, y, color);

PixelFill(x – 1, y, border_color, color);

PixelFill(x + 1, y, border_color, color);

PixelFill(x, y – 1, border_color, color);

PixelFill(x, y + 1, border_color, color);

Этот алгоритм является слишком неэффективным, так как для всякого уже отрисованного пикселя функция вызывается ещё 4 раза и, кроме того, этот алгоритм требует слишком большого объёма стека из-за большой глубины рекурсии. Поэтому для решения задачи закраски области предпочтительнее алгоритмы, способные обрабатывать сразу целые группы пикселей, т. е. использовать их «связность». Если данный пиксель принадлежит области, то, скорее всего, его ближайшие соседи также принадлежат данной области.

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

Сначала заполняется горизонтальная полоса пикселов, содержащих начальную точку. Затем, чтобы найти самый правый пиксель каждой строки, справа налево проверяется строка, предыдущая по отношению к только что заполненной полосе. Адреса найденных пикселов заносятся в стек. То же самое выполняется и для строки, следующей и за последней заполненной полосой. Когда строка обработана таким способом, в качестве новой начальной точки используется пиксель, адрес которого берется из стека. Для него повторяется вся описанная процедура. Алгоритм заканчивает свою работу, если стек пуст.

Эвольвенту окружности можно получить, сматывая натянутую нить с цилиндрической поверхности. Конец этой нити будет описывать эвольвенту.

Параметрические уравнения эвольвенты окружности:

где - радиус окружности; - угол поворота радиуса окружности.

Построение эвольвенты окружности по заданному диаметру

Имеется окружность с диаметром , и с центром в точке . Данную окружность делим на двенадцать равных частей. В точках 2, 3, 4, … проводим касательные к окружности, направленные в одну сторону. Точки эвольвенты находим исходя из того, что при развёртывании окружности точка , должна отстоять от точки 2 на расстоянии, равном длине дуги между точками 1 и 2, а точка , должна отстоять от точки 3 на расстоянии, равном длине дуги между точками 1 и 3 (две длины предыдущей дуги), и т. д.

Точное положение точек эвольвенты получим, откладывая по касательным длины соответствующих дуг. Длину дуги между точками 1 и 2 определяем по формуле , где - диаметр окружности; - число частей, на которое разделена окружность.

Получив ряд точек эвольвенты соединяем их плавной линией.

В данном случае окружность с диаметром является эволютой к этой эвольвенте .

Эвольвента окружности

Литература

1. Богданов В. Н., Малежик И. Ф., Верхола А. П. и др. Справочное руководство по черчению.. - М.: Машиностроение., 1989. - С. 438-480. - 864 с. - ISBN 5-217-00403-7


Wikimedia Foundation . 2010 .

Смотреть что такое "Развёртка окружности" в других словарях:

    Окружающий нас мир динамичен и разнообразен, и далеко не всякий объект можно просто обмерить линейкой. Для подобного переноса используются специальные техники, как то триангуляция. Потребность в составлении сложных развёрток, как правило,… … Википедия

    Прибор для разделения ионизов. молекул и атомов по их массам, основанный на воздействии магн. и электрич. полей на пучки ионов, летящих в вакууме. В М. с. регистрация ионов осуществляется электрич. методами, в м а с с с п е к т р о г р а ф а х по … Физическая энциклопедия

    Многогранник (точнее многогранная поверхность) называется изгибаемым, если его пространственную форму можно изменить такой непрерывной во времени деформацией, при которой каждая грань не изменяет своих размеров (то есть движется как твёрдое тело) … Википедия - (греч. τετραεδρον четырёхгранник) простейший многогранник, гранями которого являются четыре треугольника. У тетраэдра 4 грани, 4 вершины и 6 рёбер. Содержание 1 Связанные определения … Википедия

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

    У этого термина существуют и другие значения, см. Теорема Линделёфа. Теорема Линделёфа о многограннике наименьшей площади при заданном объёме геометрическая теорема, впервые доказанная Лоренсом Линделёфом в 1869 году.. Может быть… … Википедия

Существует несколько очень простых, но не эффективных способов преобразования окружностей в растровую форму. Например, рассмотрим для простоты окружность с центром в начале координат. Ее уравнение записывается какx 2 + y 2 = R 2 . Решая это уравнение относительно y, получим

y = ± .

Чтобы изобразить четвертую часть окружности, будем изменять x с единичным шагом от 0 до R и на каждом шаге вычислять y . Вторым простым методом растровой развертки окружности является использование вычислений x и y по формулам x = R cos α, y = R sin α при пошаговом изменении угла α от 0° до 90°.

Для упрощения алгоритма растровой развёртки стандартной окружности можно воспользоваться её симметрией относительно координатных осей и прямых y = ± x ; в случае, когда центр окружности не совпадает с началом координат, эти прямые необходимо сдвинуть параллельно так, чтобы они прошли через центр окружности. Тем самым достаточно построить растровое представление для 1/8 части окружности, а все оставшиеся точки получить симметрией (см. рис. 2.5).

Рис. 2.5. Восьмисторонняя симметрия

Рассмотрим участок окружности из второго октанта x Є . Далее опишем алгоритм Брезенхейма для этого участка окружности.

На каждом шаге алгоритм выбирает точку P i (x i , y i ), которая является ближайшей к истинной окружности. Идея алгоритма заключается в выборе ближайшей точки при помощи управляющих переменных, значения которых можно вычислить в пошаговом режиме с использованием небольшого числа сложений, вычитаний и сдвигов.

Рассмотрим небольшой участок сетки пикселов, а также возможные способы (от A до E) прохождения истинной окружности через сетку (рис. 2.6).

Предположим, что точка P i - 1 была выбрана как ближайшая к окружности при x = x i- 1 . Теперь найдем, какая из точек (S i или T i ) расположена ближе к окружности при x = x i- 1 + 1.

Рис. 2.6. Варианты прохождения окружности через растровую сетку

Заметим, что ошибка при выборе точки P i (x i , y i ) была равна

D(P i ) = (x i 2 + y i 2) – R 2 .

Запишем выражение для ошибок, получаемых при выборе точки S i или T i :

D(S i ) = [(x i-1 + 1) 2 + (y i-1 ) 2 ] – R 2 ;

D(T i ) = [(x i-1 + 1) 2 + (y i-1 – 1) 2 ] – R 2 .

Если | D(S i ) | ≥ | D(T i ) |, то T i ближе к реальной окружности, иначе выбирается S i .

Введем d i = | D(S i ) | – | D(T i ) |.

T i будет выбираться при d i ≥ 0, в противном случае будет устанавливаться S i .

Опуская алгебраические преобразования, запишем d i и d i + 1 для разных вариантов выбора точки S i или T i .

D 1 = 3 – 2 R.

Если выбирается S i (когда d i < 0), то d i + 1 = d i + 4 x i -1 + 6.

Если выбирается T i (когда d i ≥ 0), то d i + 1 = d i + 4 (x i - 1 – y i - 1) + 10.


Существует модификация алгоритма Брезенхейма для эллипса.

Можно ли в математической книге, хотя бы и в популярной, говорить, например, о жуках? Оказывается, можно. Но начать придется издалека.

Рис. 78. Развертка окружности.

Окружность, как мы теперь знаем, не имеет эволюты. Все ее нормали пересекаются в одной точке - в центре. Иногда говорят, что эволюта окружности «вырождается» в точку. Но зато эвольвенту она имеет (в чем, впрочем, большой заслуги нет: ведь развертку имеет всякая плавная кривая). Эта эвольвента оказывается близкой родственницей циклоидальным кривым.

Начнем с чертежа. Изготовим из фанеры кружок, укрепим его на бумаге, приклеим к нему нить и навернем плотно эту нить на край нашего кружка.

На конце нити сделаем петельку, в которую просунем острие карандаша (рис. 78). Если будем теперь «сматывать» нить, то карандаш автоматически начертит

Рис. 79 Качение прямой по кругу.

Нить, разумеется, должна быть туго натянута, а карандаш плотно прижат к бумаге.

Развертку окружности можно получить и иначе. Рассмотрим неподвижный круг радиуса с и прямую АВ, касающуюся этого круга в точке (рис. 79).

Рис. 80. Простые качели.

Если прямая АВ будет катиться без скольжения по окружности, то точка опишет, очевидно, развертку окружности. Действительно, для любой точки М этой кривой катящаяся прямая КМ служит нормалью, и длина отрезка КМ равна длине дуги неподвижной окружности.

Эвольвента круга является, таким образом, «циклоидой, вывернутой наизнанку». В случае циклоиды круг катится без скольжения по неподвижной прямой. В случае развертки круга прямая катится без скольжения по неподвижной окружности.

На рис. 80 изображены простейшие качели. На обрубок дерева положена доска АВ так, что ее середина касается обрубка. Что будет, если доску наклонить? Мы знаем, что она вернется в исходное положение, затем по инерции отклонится в другую сторону и будет качаться около положения равновесия. При этом, разумеется, и доска, и обрубок должны быть шероховатыми, иначе доска соскользнет в направлении, указанном на чертеже стрелкой.

Почему доска будет возвращаться в исходное положение? Это нетрудно сообразить. Известно, что всякое тело движется под действием тяжести так, что его центр тяжести опускается. Для ответа на наш вопрос достаточно знать, по какому пути движется центр тяжести (середина) доски при небольших ее отклонениях от положения равновесия.

Но это нам теперь ясно! Середина доски будет описывать дугу развертки окружности. Эта часть развертки изображена на рис. 80 штриховой линией. Мы видим, что при небольших отклонениях доски ее центр тяжести подымается, а потому доска будет возвращаться к положению равновесия. Равновесие будет, очевидно, устойчивым.

Родство развертки круга с циклоидальпыми кривыми можно обнаружить и другим путем. Мы уже говорили, что в случае эпициклоид пли гипоциклоид (рис. 66) неограниченное возрастание радиуса неподвижного круга при неизменном радиусе подвижного приводит к циклоиде. Если мы обратимся к перициклоиде (стр. 50) и, оставив неизменным радиус неподвижного круга, будем неограниченно увеличивать радиус подвижного, так сказать, «выпрямляя» его (рис. 81), то перициклоида превратится в развертку круга.

Мы не будем здесь приводить вывода формул для длины дуги эвольвенты круга и площади ее сектора.

Приведем готовый результат (рис. 82). Для длины l дуги развертки и для площади S сектора будем иметь;

Эти формулы интересны тем, что величину входящего в них угла приходится возводить во вторую и в третью степень - обстоятельство, которое может смутить новичка.

Рис. 81. Неограниченное увеличение подвижного круга.

Рис. 82. Длина дуги и площадь сектора эвольвенты круга.

Подчеркиваем еще раз, что при этом угол должен быть выражен непременно в радианах. Если угол выражен в градусах и равен, например, (а градусов равны радианам), то формулы примут следующий вид:

Обратим внимание читателей на то, что угол радиан (или а градусов) - это угол нашего чертежа, а вовсе не угол сектора эвольвенты!

Жук-математик

Возьмем бумажный кружок (рис. 83), разрежем его от края к центру (например, по радиусу НО) и свернем сектор НОК в трубочку, как показано на рисунке.

Трубочка получится очень аккуратная: ведь она представляет собою коническую поверхность, причем все образующие этой поверхности, как радиусы одного и того же круга, между собою равны.

Рис. 83. Склеивание бумажного конуса.

Если бы мы разрезали кружок так, как показано на рис. 84, то трубка получилась бы неаккуратная: образующие конической поверхности были бы не равны между собою.

Возьмем теперь листок, ограниченный не окружностью, а какой-то другой плавной кривой, например, такой, как изображено на рис. 85. Если взять любую точку внутри листка, например, точку О, сделать разрез по ОН и свернуть трубку, то трубочка получится плохая, потому что образующие конической поверхности будут разной длины. И как бы мы ни выбирали точку О, нам хорошей трубки получить не удастся, потому что ни у какой кривой, кроме окружности, нет точки, равноудаленной от всех остальных ее точек.

Рис. 84. Плохая трубка.

Что ж? Будем хитрить! Возьмем какую-нибудь точку Н на краю листа (рис. 85) и наметим небольшую дугу НК. Будем считать эту дугу дугой окружности и найдем центр этой окружности. С этой целью проведем в точках Н и К нормали. Точка пересечения Т нормалей будет искомым центром. Далее, рассмотрим дугу КМ. Ее тоже можно без большой погрешности считать дугой окружности, но центр этой окружности не совпадет с проведя нормали к контуру листа в точках К и М, мы найдем точку их пересечения не совпадающую с точкою Т.

Рис. 85. Как разрезать лист?

Остается сделать последний шаг: перейти от ломаной линии центров к непрерывной кривой, чтобы обеспечить вполне гладкую трубочку, свободную от зазубрин. Ясно, что для этого достаточно заменить ломаную звенья которой соединяют точки пересечения «соседних» пар нормалей, плавной кривой - огибающею этих нормалей, т. е. кривой ТР, изображенной на рис. 86.

Но огибающей нормалей является, как мы знаем, эволюта данной кривой.

Значит, для того чтобы свернуть из листа наиболее аккуратную трубочку, нужно предварительно разрезать лист сначала по куску НТ нормали, а затем - по эволюте ТР его контура.

Рис. 86. Как избавиться от зазубрин?

И вам, читатель, и мне, и кому-нибудь еще вряд ли понадобится свертывать в трубки листочки бумаги (свертывание папироски - «козьей ножки» - не в счег: при этом ведь не нужно заботиться, чтобы все образующие были равной длины!). Поэтому практическая ценность разобранной нами сейчас задачи ничтожна. Но вот что интересно: существует жук, вернее, несколько пород жуков, которые изготовляют для своего будущего потомства домик из листа, свертывая его в трубку.

Эта трубка должна быть прочной и аккуратной. Ее не должны растрепать ветры и ливни, она не должна своим живописным видом и величиной привлекать врагов. И наш жучок-листоверт (жуки из родов Rhynchites, Byctiscus и др.) прекрасно решает сложную математическую задачу. Он прогрызает лист по эволюте контура и лишь после этого свертывает его. На рис. 87 изображен березовый листоверт (в натуральную величину) и разрезанный (вернее, прогрызенный) им лист.

Рис. 87 Березовый листоверт (натуральная величина).

Рис. 88. Виноградный листоверт и его трубка (увеличено в 2 раза).

На рис. 88 изображен увеличенный в два раза виноградный листоверт и его трубочка.

Разумеется, жучок-геометр решает эту далеко не простую задачу совершенно бессознательно. В течение многих лет естественный отбор сохранял преимущественно тех жучков, домики которых были особенно аккуратны. В результате возник инстинкт, передающийся по наследству из поколения в поколение. Этот инстинкт заставляет насекомое, не зная геометрии, решать сложную геометрическую задачу. Заметим, что другое, более известное насекомое - пчела - тоже решает (бессознательно, разумеется) не менее сложную задачу: построить соты так, чтобы при заданном числе и емкости ячеек их поверхность была наименьшей.

При этих условиях достигается наиболее экономное использование строительного материала (воска).