Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Рисуем многочлен Бернштейна для произвольного числа опорных точек

.NET
Так собственно выглядит рабочая область:


Можно указать количество точек(от 2 до 13), и перетаскивать любую опорную точку наблюдая в реальном времени как меняется кривая.
Сделано для себя, с целью разобраться с кривыми разного порядка.
Базовые знания почерпнуты отсюда:

Многочлен_Бернштейна
Биномиальный_коэффициент

Можно также почитать про кривую Безье, которая является частным случаем многочлена Бернштейна.

Исходники прилагаются, в архиве также скомпиленный(Win_X86) exe'шник.

Архив с исходниками и exe'шником.
Зеркало
Доработка от Vordigont

Класс реализующий многочлен откомментирован, разобраться проблемы не будет. Код на шарпе.
Всего голосов 73: ↑46 и ↓27 +19
Просмотры3K
Комментарии 36

Интерполяция: рисуем гладкие графики средствами PHP и GD

PHP
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →
Всего голосов 80: ↑77 и ↓3 +74
Просмотры52.2K
Комментарии 23

Javascript: Рисуем с помощью кривых Безье

JavaScriptCanvas
Доброго времени суток, хабражители!
Мне очень нравятся барочные элементы. В очередной раз встретив подобный узор на одном из сайтов, представил, как бы он чудесно смотрелся в анимации, картинка бы ожила. Тем более с приходом html5 оживление должно стать гораздо проще в реализации. Но как по точкам нарисовать кривую? Тут как раз кстати вспомнилась кривая Безье!

На уроках векторной графики я люто ненавидел кривые Безье. Принцип ее работы казался магическим, непостижимым и, как бы не сказать грубее, нелогичным. Складывалось ощущение, что сама кривая не знает как извернуться, и как наглый котяра растягивалась как ей удобнее, а не как мне надо.

На самом деле, как всегда, надо было лишь уделить немного времени теории. Все оказалось просто и довольно интересно. В итоге получилась реализация кривых на яваскрипте с использованием canvas.
Кому интересно как строится эта извилистая бестия добро пожаловать под кат!
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Просмотры57.6K
Комментарии 17

Интерполяция: рисуем плавные графики с помощью кривых Безье

JavaScriptПрограммированиеАлгоритмыHTML
Recovery mode
Доброго времени суток, харбачитатель.

В этой статье мне хотелось бы рассказать об одном придуманном когда-то алгоритме (или скорее всего — переизобретённом велосипеде) построения плавного графика по заданным точкам, используя кривые Безье. Статья была написана под влиянием вот этой статьи и очень полезного комментария товарища lany, за что им отдельное спасибо.

Постановка задачи
Есть массив Y-ков точек, расположенных равномерно по оси X. Нужно получить плавный график, который проходит через все заданные точки. Пример на рисунке ниже:



Всех, кому интересно, прошу под кат.
Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры34.8K
Комментарии 53

Ныряем вглубь: от CSS до транзистора

Компьютерное железоИстория ITНаучно-популярноеПроцессоры
70 лет назад, 16 декабря 1947 г. в лабораториях Bell Labs Джон Бардин и Уолтер Браттейн под руководством Уильяма Шокли создали первый действующий биполярный транзистор. 23 декабря Браттейн продемонстрировал ставил коллегам первый транзисторный усилитель. Поэтому этот день часто называют Днем транзистора.

Бардин стоит слева, Браттейн стоит справа, Шокли сидит

Нет нужды рассказывать о значимости этого события. Транзистор считается одним из самых важных изобретений XX века, без которого компьютеры до сих пор бы работали на лампах и реле, и занимали бы целые здания. Шокли, Бардин и Браттейн за свою работу получили в 1956 году Нобелевскую премию по физике. За прошедшие годы транзистор миниатюризировался до считанного числа атомов. В каждом процессоре миллиарды транзисторов, поэтому транзистор можно назвать самым массовым устройством, созданным человечеством.

Но какую работу выполняет транзистор для нас? Давайте отправимся в мысленное путешествие: проследим путь от какой-нибудь высокоуровневой финтифли до нашего именинника — транзистора.

Что взять в качестве отправной точки? Ну вот хотя бы отрисовку кнопки хабраката.
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Просмотры10.3K
Комментарии 9

Кривая Безье на службе экономистов по труду

ПрограммированиеПрототипированиеУправление персоналомБизнес-моделиСофт
Из песочницы
(результирующее представление попытки разработки обоснования установленных окладов на предприятии)

Вместо аннотации


Если Вы хоть раз задумывались о необходимости обоснования размеров окладной части заработных плат работников предприятия, Вам требовалась наглядность и простота в принятии подобных решений, то Вы не одиноки и материал под катом для Вас. Здесь будет представлена скромная попытка реализации системы обоснования окладов на предприятии с применением современных механизмов комплексного оценивания для вывода бально-рейтинговой системы и кривых Безье, как основы приведения баллов к результирующим окладам.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры2.8K
Комментарии 6

Циркулярные кривые 2-го порядка

АлгоритмыМатематика
Как известно, кривыми Безье нельзя построить дугу окружности или эллипса. В этой статье рассматриваются кривые, лишённые такого недостатка.


Дальше будут картинки и анимации
Всего голосов 26: ↑26 и ↓0 +26
Просмотры5.2K
Комментарии 7