- Файл
- История файлов
- Использование файла
- Глобальное использование файлов
Dyadic_trans.gif (300 × 300 пикселов, размер файла: 114 КБ, MIME - тип: изображение / GIF )
Резюме
ОписаниеДиадический trans.gif | Диадическое преобразование xy сюжет |
Дата | |
Источник | Наша работа |
Автор | Клаудио Роккини |
Разрешение ( повторное использование этого файла ) | собственная работа, требуется указание авторства |
Исходный код
/ ***************************** * Сюжет диадической трансформации * (C) 2010 Claudio Rocchini * [email protected] *** ************************** /#include #include #include <вектор>#include <набор>typedef беззнаковый байт символа ;class image { // определение изображения public : byte * mbuf ; // Память изображений int dimx , dimy ; // Размер изображения image ( int ndimx , int ndimy ) : dimx ( ndimx ), dimy ( ndimy ) { mbuf = новый байт [ dimx * dimy * 3 ]; memset ( mbuf , 255 , dimx * dimy * 3 ); } ~ изображение () { удалить [] mbuf ; } bool save_ppm ( const char * filename ) const { FILE * f = fopen ( filename , "wb" ); если ( f == 0 ) вернуть ложь ; fprintf ( f , "P6 \ n % d% d \ n 255 \ n " , dimx , dimy ); fwrite ( mbuf , 3 , dimx * dimy , f ); fclose ( f ); вернуть истину ; } void set_black_pixel ( int x , int y , двойная ловушка ) { if ( x < 0 || x > = dimx ) return ; если ( y < 0 || y > = dimy ) return ; байт * p = mbuf + 3 * ( x + y * dimx ); p [ 0 ] = байт ( p [ 0 ] * ( 1 - trasp ) / * + (trasp) * 0 * / ); p [ 1 ] = байт ( p [ 1 ] * ( 1 - trasp ) / * + (trasp) * 0 * / ); p [ 2 ] = байт ( p [ 2 ] * ( 1 - trasp ) / * + (trasp) * 0 * / ); } void dot ( double x , double y , double trasp ) // точность с плавающей точкой put pixel { int ix = int ( x ); двойной rx = x - ix ; int iy = int ( y ); двойной ry = y - iy ; set_black_pixel ( ix + 0 , iy + 0 , trasp * ( 1 - rx ) * ( 1 - ry )); set_black_pixel ( ix + 1 , iy + 0 , trasp * ( rx ) * ( 1 - ry )); set_black_pixel (ix + 0 , iy + 1 , trasp * ( 1 - rx ) * ( ry )); set_black_pixel ( ix + 1 , iy + 1 , trasp * ( rx ) * ( ry )); } };// рациональное определение typedef __int64 bigint ;bigint gcd ( bigint m , bigint n ) {в то время как ( n ! = 0 ) { bigint t = m % n ; m = n ; п = т ; } return m ; }класс рациональный { общественность : bigint p , q ;рациональный () {} рациональный ( int np , int nq ) { p = np ; q = nq ; normalize (); } логический оператор < ( const рациональное & x ) const { return p * x . д < д * х . p ; } void normalize () { bigint g = НОД ( p , q ); p / = g ; q / = g ; } void doubled () { если ( q % 2 == 0 ) { assert ( q ! = 1 ); q / = 2 ; } // утверждение для проверки переполнения else { assert ( p < ( 1 << 30 ) ); р * = 2 ; } } void modulo () {в то время как ( p > = q ) p - = q ; normalize (); } оператор double () { return double ( p ) / q ; } };int main () { const int SX = 600 ; const int SY = 600 ; изображение im ( SX , SY ); std :: set < рациональный > сс ; // вычисление дробей для ( int i = 2 ; i < 150 ; ++ i ) { // перечисление дробей для ( int j = 1 ; j < i ; ++ j ) { рациональное w ( j , i ); // текущие начальные дроби if ( ss . find ( w ) ! = ss . end () ) continue ; // просто сделай это! сс . вставить ( ш ); двойной хх = SX * w ; std :: set < рациональный > tt ; // набор строк для (;;) { if ( tt . find ( w ) ! = tt . end () ) break ; // просто сделай это: это цикл tt . вставить ( ш ); двойной yy = SX * w ; им . точка ( xx , yy , 0,5 ); // это значение точки w . удвоен (); // ww = (w * 2) mod 1 w . по модулю (); } } } им . save_ppm ( "c: \\ temp \\ dyadic.ppm" ); возврат 0 ; }
Лицензирование
Я, владелец авторских прав на это произведение, публикую его под следующими лицензиями:
Разрешается копировать, распространять и / или изменять этот документ в соответствии с условиями лицензии GNU Free Documentation License версии 1.2 или любой более поздней версии, опубликованной Free Software Foundation ; без неизменяемых разделов, без текстов на лицевой обложке и без текстов на задней обложке. Копия лицензии включена в раздел под названием GNU Free Documentation License .http://www.gnu.org/copyleft/fdl.htmlGFDLЛицензия свободной документации GNUправдаправда |
Этот файл находится под лицензией Creative Commons Attribution-Share Alike 3.0 Unported . | ||
| ||
Этот тег лицензирования был добавлен в этот файл как часть обновления лицензирования GFDL .http://creativecommons.org/licenses/by-sa/3.0/CC-BY-SA-3.0Лицензия Creative Commons Attribution-Share Alike 3.0правдаправда |
Этот файл находится под лицензией Creative Commons Attribution 2.5 Generic . | ||
https://creativecommons.org/licenses/by/2.5 CC BY 2.5 Лицензия Creative Commons Attribution 2.5 правдаправда |
Вы можете выбрать лицензию на ваш вкус.
Элементы, изображенные в этом файле
изображает
copyright status<\/a>"}},"text\/plain":{"en":{"":"copyright status"}}},"{\"value\":{\"entity-type\":\"item\",\"numeric-id\":50423863,\"id\":\"Q50423863\"},\"type\":\"wikibase-entityid\"}":{"text\/html":{"en":{"P6216":"copyrighted<\/a>"}},"text\/plain":{"en":{"P6216":"copyrighted"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P6216 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">
статус авторского права
защищенный авторским правом
copyright license<\/a>"}},"text\/plain":{"en":{"":"copyright license"}}},"{\"value\":{\"entity-type\":\"item\",\"numeric-id\":18810333,\"id\":\"Q18810333\"},\"type\":\"wikibase-entityid\"}":{"text\/html":{"en":{"P275":"Creative Commons Attribution 2.5 Generic<\/a>"}},"text\/plain":{"en":{"P275":"Creative Commons Attribution 2.5 Generic"}}},"{\"value\":{\"entity-type\":\"item\",\"numeric-id\":50829104,\"id\":\"Q50829104\"},\"type\":\"wikibase-entityid\"}":{"text\/html":{"en":{"P275":"GNU Free Documentation License, version 1.2 or later<\/a>"}},"text\/plain":{"en":{"P275":"GNU Free Documentation License, version 1.2 or later"}}},"{\"value\":{\"entity-type\":\"item\",\"numeric-id\":14946043,\"id\":\"Q14946043\"},\"type\":\"wikibase-entityid\"}":{"text\/html":{"en":{"P275":"Creative Commons Attribution-ShareAlike 3.0 Unported<\/a>"}},"text\/plain":{"en":{"P275":"Creative Commons Attribution-ShareAlike 3.0 Unported"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P275 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">
лицензия на авторское право
Creative Commons Attribution 2.5 Generic
Лицензия свободной документации GNU, версия 1.2 или новее
Лицензия Creative Commons Attribution-ShareAlike 3.0 без переноса
source of file<\/a>"}},"text\/plain":{"en":{"":"source of file"}}},"{\"value\":{\"entity-type\":\"item\",\"numeric-id\":66458942,\"id\":\"Q66458942\"},\"type\":\"wikibase-entityid\"}":{"text\/html":{"en":{"P7482":"original creation by uploader<\/a>"}},"text\/plain":{"en":{"P7482":"original creation by uploader"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P7482 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">
источник файла
оригинальное творение пользователя, загрузившего
inception<\/a>"}},"text\/plain":{"en":{"":"inception"}}},"{\"value\":{\"time\":\"+2006-12-12T00:00:00Z\",\"timezone\":0,\"before\":0,\"after\":0,\"precision\":11,\"calendarmodel\":\"http:\\\/\\\/www.wikidata.org\\\/entity\\\/Q1985727\"},\"type\":\"time\"}":{"text\/html":{"en":{"P571":"12 December 2006"}},"text\/plain":{"en":{"P571":"12 December 2006"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P571 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">
зарождение
12 декабря 2006 г.
История файлов
Щелкните дату / время, чтобы просмотреть файл в том виде, в котором он выглядел в то время.
Дата / время | Эскиз | Габаритные размеры | Пользователь | Комментарий | |
---|---|---|---|---|---|
Текущий | 13:02, 12 декабря 2006 г. | 300 × 300 (114 КБ) | Роккини | {{Информация | | Описание = Диадическое преобразование xy сюжета | Источник = собственная работа | Дата = 12 декабря 2006 | Автор = Клаудио Роккини | Разрешение = собственная работа, требуется указание источника}} |
Использование файла
Следующие страницы английской Википедии используют этот файл (страницы других проектов не указаны):
- Диадическая трансформация
- Юзер: Rocchini
Глобальное использование файлов
Следующие другие вики используют этот файл:
- Использование на es.wikipedia.org
- Transformación diádica
- Использование на fr.wikipedia.org
- Декалаж де Бернулли (математика)