Board.KolibriOS.org

Official KolibriOS board
It is currently Sun May 19, 2019 8:05 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
 Post subject: FractalTree
PostPosted: Tue May 22, 2018 9:37 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
This example draws a fractal tree:
Spoiler: Show
Attachment:
1.png
1.png [ 36.38 KiB | Viewed 2279 times ]
Tools needed:
Attachment:
FractalTree.7z [2.03 KiB]
Downloaded 44 times


Top
   
 Post subject: Re: FractalTree
PostPosted: Tue May 22, 2018 10:37 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
Вах, красота.
Надо залить на СВН и добавить в дистр (можно бинарник).

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

P.S. Код ня, но зачем так много тулзов?)
P.P.S. Тебе нужно где-то держать репозитарий или просто обновляемый архив со всеми компиляторами и библиотеками которые используешь.

_________________
Через тернии к звездам


Top
   
 Post subject: Re: FractalTree
PostPosted: Wed May 23, 2018 8:52 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Смотрится красиво. Но слева самая маленькая ветка по цвету выделяется из основной гаммы. Она красного цвета, а все остальные ветви зеленые, а красная сторона дерева справа.


Top
   
 Post subject: Re: FractalTree
PostPosted: Thu May 24, 2018 10:12 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
IgorA wrote:
Но слева самая маленькая ветка по цвету выделяется из основной гаммы. Она красного цвета, а все остальные ветви зеленые
А, это из-за формулы цвета
Code:
eax = RGB(127, Abs(Angle), Depth * 24)
Сейчас глубина 11
Code:
Invoke DoDraw, X, Y, -90, 11
Если глубину задавать меньше, чем 11, то ветка будет зелёная. Просто вот эти значения
Code:
Abs(Angle)
Depth * 24
выходят за пределы 255, здесь по идее нужна арифметика с насыщением.
Например, ветка будет зелёной, если сделать так(добавлены сравнения .If GREATER?)
Code:
    mov eax, Angle        ;
    test eax, eax         ;
    .If SIGN?             ;
      neg eax             ;
    .EndIf                ;
   
    cmp eax, 255   ;
    .If GREATER?
      mov eax, 255
    .EndIf
   
    shl eax, 8            ; eax = RGB(127, Abs(Angle), Depth * 24)
    or eax, 127 SHL 16    ;
    mov ebx, Depth        ;
    imul ebx, 24          ;
   
    cmp ebx, 255   ;
    .If GREATER?
      mov ebx, 255
    .EndIf
   
    or eax, ebx           ;
    Invoke DrawLine, X1, Y1, X2, Y2, eax
Leency wrote:
Надо залить на СВН и добавить в дистр (можно бинарник).
Можно собирать на сервере с помощью JWASM — это форк товарища XVilka viewtopic.php?f=2&t=2586&p=64806#p64806
Сейчас на сервере с помощью JWASM собирается программа RUN viewtopic.php?f=9&t=3584 вот она на SVN http://websvn.kolibrios.org/listing.php ... f773176113
Можно сделать аналогично.
Leency wrote:
но зачем так много тулзов?
Странный вопрос, однако :lol:
Теоретически можно было бы без objcopy, но у ld есть проблема с OUTPUT_FORMAT("binary"), хотя, возможно, линуксовый ld такой проблемы не имеет(но всё равно). Ещё можно было бы воспользоваться Ваткомовским линкером, но он вряд ли есть на сервере.
Ассемблер нужен для компиляции asm-файла.
Линкер нужен для линковки с библиотекой KolibriOS.lib.
Так что, ничего лишнего.


Top
   
 Post subject: Re: FractalTree
PostPosted: Thu May 24, 2018 4:04 pm 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 214
А почему поверху наблюдаются плоские площадки?
Так и должно быть? Или ошибки округления/использование целых чисел/ещё чего-то?


Top
   
 Post subject: Re: FractalTree
PostPosted: Thu May 24, 2018 7:06 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
lev wrote:
А почему поверху наблюдаются плоские площадки?
Так и должно быть?
Да, это фрактал такой.
lev wrote:
ошибки округления/использование целых чисел/ещё чего-то
Где конкретно по-твоему ошибка?


Top
   
 Post subject: Re: FractalTree
PostPosted: Sun May 27, 2018 10:39 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Вот такой кустарничек :)
Spoiler: Show
Attachment:
1.PNG
1.PNG [ 87.3 KiB | Viewed 2150 times ]
Нажимайте клавишу Enter, чтобы сгенерировать новый куст.
Для сборки нужно то же самое: LD, ObjCopy, UASM, KolibriOS.lib.
Attachment:
FractalBush.7z [3.36 KiB]
Downloaded 52 times


Top
   
 Post subject: Re: FractalTree
PostPosted: Sat Jun 02, 2018 9:47 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Не совсем дерево, но всё же растение :)
Фрактальный папоротник.
Spoiler: Show
Attachment:
1.png
1.png [ 36.54 KiB | Viewed 2052 times ]
Для сборки — всё то же самое.
Attachment:
FractalFern.7z [2.95 KiB]
Downloaded 54 times


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited