Список постов в категории "Жизнь"

Как протестировать пульт телевизора и увидеть инфракрасный луч?

Всем известно, что пульт дистанционного управления от телевизора/DVD и прочих приборов испускает инфракрасные лучи невидимые невооруженным глазом. Оказывается, если навести пульт на камеру мобильного телефона и пощелкать кнопками, то можно увидеть этот луч.

Инфракрасный свет от пульта RM-887

Второй пульт явно кушает меньше электричества, чем первый.

Инфракрасный свет от пульта BBK RC019-01R

Все пульты в квартире светят голубым, а ещё говорят, что свет инфраКРАСНЫЙ. :)

Гардарики

Вы никогда не задумывались почему Новгород называют Новгородом? То есть «Новый Город»? А старый тогда где?

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

А «Гардарики» — это в переводе со скандинавского «страна городов». Википедия говорит, что, возможно, так называли Новгородскую землю.

Вы знали об этом? Мне как-то ни разу в голову не пришло, почему именно «Нов-город», а ведь слышал много раз. Даже бывал там полтора-два года назад проездом. Вот такие дела, век живи — век учись.

Создание правильного полигона для Box2D

Движок Box2D используется для симуляции физики в двумерном пространстве. Из фигур он поддерживает сферу (круг), бокс (прямоугольник) и выпуклый полигон (с внутренними углами больше 1-10 градусов, иначе будет падение с ошибкой).

Что же делать, если надо нарисовать этот полигон от руки и скормить Box2D, чтоб он не рухнул?

Можно нарисовать составной полигон в виде множества сфер и боксов. Так, например, сделана фигура танка для демки движка NeoAxis Game Engine (этот движок трехмерный, но проблемы с физикой такие же)

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

  • берем нарисованный полигон
  • разбиваем его на треугольники (этот процесс называется триангуляция, в интернете можно найти множество решений этой задачи)
  • (опционально) склеиваем получившиеся треугольники в выпуклые полигоны

Третий пункт — это просто оптимизация. Делать его необязательно, реализуется простым перебором всех треугольников.

  • находим два треугольника со смежной стороной (две точки должны быть общими)
  • сливаем их в один полигон
  • проверяем на выпуклость (внутренние углы должны быть меньше 180)

И еще один момент: если угол между сторонами полигона равен 180 градусам, можно удалить точку, общую для обеих сторон.

Личный блог Евгения Жирнова