Получение произвольного бита из числа.
int bit = (c >> i) & 1
Где с - число, i - номер получаемого бита.
Установка произвольного бита в числе.
b |= (1 << i); // set b &= ~(1 << i); // clear
где b - число, а i - номер бита
A Swarm of Nano Quadrotors
Стая мелких четырёхвинтокрыльников выполняют совместные учения.
Experiments performed with a team of nano quadrotors at the GRASP Lab, University of Pennsylvania. Vehicles developed by KMel Robotics. Special thanks to Professor Daniel Lee for his support.
Очень здорово.
Напомнило старый добрый HomeWorld :)
Ледяной палец. BBC.
BBC: Frozen Planet, 'Brinicle' ice finger of death from Dan Droopy on Vimeo.
Коротко о физике процесса:
Под формирующимся на поверхности льдом собирается концентрированная солёная вода, которая имеет температуру сильно ниже нуля. Крепкий переохлажденный рассол, стекая вниз, в зоне контакта с обычной морской водой, намораживает трубу из пресного льда. Как только эта рассольная сосулька касается дна, всё живое в месте прикосновения оказывается вмороженным в ледяную гробницу.
Pencil
Похожая на Dia утилита для создания диаграмм. Не так удобно, но примитивов побольше.
При этом дополнительно может использоваться для быстрой наброски интерфейсов.
Пробовал не плагин, а полноценную программу.
Работает, конечно, странно. То и дело теряется возможность добавлять новые элементы. Не умеет скреплять элементы между собой.
Но интересная.
Слот. Поиск по QTreeWidget. Еще вариант.
Ищет по листьям. По первому столбцу.
Если дерево одноуровневое, то проверку на childCount можно убрать.
void MyClass::find(QString aFindString) { QTreeWidgetItemIterator it(myTree); while (*it) { if (!(*it)->text(0).contains(aFindString, Qt::CaseInsensitive) && ((*it)->childCount() == 0)) { (*it)->setHidden(true); } else { (*it)->setHidden(false); } ++it; } }
Коннект идентичен.
QLineEdit *findEdit = new QLineEdit(this); connect(findEdit,SIGNAL(textEdited(QString)),this,SLOT(find(QString)));
Должно работать гораздо быстрее первого варианта :)
Слот. Поиск по QTreeWidget.
Поиск работает только в одноуровневом дереве по первому столбцу.
void MyClass::find(QString aFindString) { int childCount = tree->invisibleRootItem()->childCount(); if(aString != "") { QList <QTreeWidgetItem *> findList = tree->findItems(aFindString, Qt::MatchContains, 0); for(int i = 0; i < childCount; i++) { tree->invisibleRootItem()->child(i)->setHidden(true); } int findListSize = findList.size(); for(int j = 0; j < findListSize; j++) { findList.at(j)->setHidden(false); } } else { for(int i = 0; i < childCount; i++) { tree->invisibleRootItem()->child(i)->setHidden(false); } } }
Коннектим так:
QLineEdit *findEdit = new QLineEdit(this); connect(findEdit,SIGNAL(textEdited(QString)),this,SLOT(find(QString)));
Интерактивный курс по JavaScript
Отлично и интересно сделанный!
Буду изучать...
На английском Codecademy
The Winapi (C Win32 API, No MFC) tutorial
Нашел тут очень приятные и легкие в понимании примеры для WinAPI
На английском.
The Winapi (C Win32 API, No MFC) tutorial