Угу, после матлаба, где функция mod работает как учат в курсе математики долго не мог привыкнуть к поведению оператора % в C/C++.
Потому что C/C++ это так:
(x % y) = x — trunc(x/y)*y, а в математике принято так:
(x % y) = x — floor(x/y)*y.
Вот и приходится постоянно всюду дописывать свою функцию.
Думаю, что не в этом.
Если не лень читать многа букаф, то вот как было организовано производство микросхем при союзе: http ://sbelan.ru/index.php/ru/intervyu/119-intervyu-s-rabochim-zavoda-po-proizvodstvu-elektronnykh-mikroskhem/index.html
Вместо автоматизации производства, как на загнивающем западе, полу-ручной труд и оплата, не зависящая от качества продукта.
При таком подходе даже игрушки выпускать годные было проблематично :(
Да, идея на 5+.
Сразу вспомнил гонки роботов из трилогии Ника Горькавого «Астровитянка» (Теория катастроф, глава 3) и того многоногого робота, которого построила Никки и который приводился в движение всего тремя двигателями. Там вся изюминка была в форме, взаимном расположении ног и их синхронном вращении.
В самом начале в 2Д и 3Д игры играл и с инвертированной мышью и нет, но потом пришел Descent и управление в стиле самолета (руль/мышь на себя — нос вверх) взяло верх и в шутерах. При этом переключение с десктопного управления курсором мышью на игровое/самолетное происходит моментально, чем немало удивляю друзей и до сих пор.
Да, это самый простой вариант. Но этим способом можно получить только те кривые, у которых внутренняя и внешняя огибающие эллипсы. Если же огибающие сложной формы, то для таких гильош математика будет сложнее.
Например, на этом рисунке
внутренняя огибающая в полярных координатах имеет форму синусоиды и частоту 6 (r ~ sin(6*phi)), а внешняя — 12. Пространство между ними заполнено 15 синусоидами с частотой 20 по вышеописанному алгоритму.
Гммм, действительно, только один раз проигрывается почему-то (делал ее в Matlab используя imwrite, в котором 'LoopCount'=inf по умолчанию; но если поставить 'LoopCount'=65535 то вроде проигрываетсь много раз).
Вот полная анимация (я не нашел как удалить картинку из первого комментария):
В принципе, кривые для гильош можно вместить между внутренним и внешним контурами в полярных координатах используя простой алгоритм. Суть в том, что сначала считаются массивы точек для внешнего и внутреннего контуров и их «средняя линия» для кажого значения полярного угла. Затем для этих же значений полярного угла рассчитываются точки внутренних кривых от внутреннего к внешнему контурам пропорционально значениям их «косинусов» учитывая сдвиг по фазе для каждой кривой.
Выходит что-то типа этого (анимированная гифка здесь: https://habrastorage.org/getpro/habr/comment_images/b01/20f/451/b0120f451e80d9722272e7091d0de7fa.gif):
Да, интересные кривые получаются. Меня когда-то нравилось возится с ними в postscript, исходники еще есть. Если есть желание, то могу выслать пример для расширения статьи.
meep — расчет прохождения электромагнитных волн в периодических системах методом FDTD
mpb — расчет фотонных зон и дисперсионных кривых для периодических систем
Почитать можно здесь: http://ab-initio.mit.edu/wiki/index.php/MIT_Photonic_Bands
Я правильно понимаю, что Scheme позволяет иметь несколько независимых продолжений в программе (в то время как в Postscript состояния сохраняются в отдельном стеке и восстанавливаются в соответствующем порядке)?
Материал очень интересный и познавательный, так как некоторые open-source инструменты для научных расчетов/моделирования (meep, mpb, и др.) используют Scheme для описания входных данных и пару раз приходилось сильно извращаться чтобы правильно описать нужную систему языком Scheme. Так что будем ждать продолжения.
Мне кажется, что продолжения в Scheme напоминают по своей идеологии связку операторов gsave и grestore в языке Postscript, но в Postscript для «графических состояний» стек отдельный.
А если последнюю картинку с лицом инвертировать что получится?
попробовать?
Потому что C/C++ это так:
(x % y) = x — trunc(x/y)*y, а в математике принято так:
(x % y) = x — floor(x/y)*y.
Вот и приходится постоянно всюду дописывать свою функцию.
Если не лень читать многа букаф, то вот как было организовано производство микросхем при союзе: http ://sbelan.ru/index.php/ru/intervyu/119-intervyu-s-rabochim-zavoda-po-proizvodstvu-elektronnykh-mikroskhem/index.html
Вместо автоматизации производства, как на загнивающем западе, полу-ручной труд и оплата, не зависящая от качества продукта.
При таком подходе даже игрушки выпускать годные было проблематично :(
В самом лучшем значении этой фразы!
Мегакруто!
Похоже, что уже в 1976м подозревади что-то
Сразу вспомнил гонки роботов из трилогии Ника Горькавого «Астровитянка» (Теория катастроф, глава 3) и того многоногого робота, которого построила Никки и который приводился в движение всего тремя двигателями. Там вся изюминка была в форме, взаимном расположении ног и их синхронном вращении.
Например, на этом рисунке
внутренняя огибающая в полярных координатах имеет форму синусоиды и частоту 6 (r ~ sin(6*phi)), а внешняя — 12. Пространство между ними заполнено 15 синусоидами с частотой 20 по вышеописанному алгоритму.
Вот полная анимация (я не нашел как удалить картинку из первого комментария):
Выходит что-то типа этого (анимированная гифка здесь: https://habrastorage.org/getpro/habr/comment_images/b01/20f/451/b0120f451e80d9722272e7091d0de7fa.gif):
mpb — расчет фотонных зон и дисперсионных кривых для периодических систем
Почитать можно здесь: http://ab-initio.mit.edu/wiki/index.php/MIT_Photonic_Bands
Я правильно понимаю, что Scheme позволяет иметь несколько независимых продолжений в программе (в то время как в Postscript состояния сохраняются в отдельном стеке и восстанавливаются в соответствующем порядке)?
Мне кажется, что продолжения в Scheme напоминают по своей идеологии связку операторов gsave и grestore в языке Postscript, но в Postscript для «графических состояний» стек отдельный.