Board.KolibriOS.org
http://board.kolibrios.org/

FractalTree
http://board.kolibrios.org/viewtopic.php?f=9&t=3717
Page 1 of 1

Author:  0CodErr [ Tue May 22, 2018 9:37 pm ]
Post subject:  FractalTree

This example draws a fractal tree:
Spoiler: Show
Attachment:
1.png
1.png [ 36.38 KiB | Viewed 3833 times ]
Tools needed:
Attachment:
FractalTree.7z [2.03 KiB]
Downloaded 102 times

Author:  Leency [ Tue May 22, 2018 10:37 pm ]
Post subject:  Re: FractalTree

Вах, красота.
Надо залить на СВН и добавить в дистр (можно бинарник).

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

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

Author:  IgorA [ Wed May 23, 2018 8:52 am ]
Post subject:  Re: FractalTree

Смотрится красиво. Но слева самая маленькая ветка по цвету выделяется из основной гаммы. Она красного цвета, а все остальные ветви зеленые, а красная сторона дерева справа.

Author:  0CodErr [ Thu May 24, 2018 10:12 am ]
Post subject:  Re: FractalTree

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.
Так что, ничего лишнего.

Author:  lev [ Thu May 24, 2018 4:04 pm ]
Post subject:  Re: FractalTree

А почему поверху наблюдаются плоские площадки?
Так и должно быть? Или ошибки округления/использование целых чисел/ещё чего-то?

Author:  0CodErr [ Thu May 24, 2018 7:06 pm ]
Post subject:  Re: FractalTree

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

Author:  0CodErr [ Sun May 27, 2018 10:39 am ]
Post subject:  Re: FractalTree

Вот такой кустарничек :)
Spoiler: Show
Attachment:
1.PNG
1.PNG [ 87.3 KiB | Viewed 3704 times ]
Нажимайте клавишу Enter, чтобы сгенерировать новый куст.
Для сборки нужно то же самое: LD, ObjCopy, UASM, KolibriOS.lib.
Attachment:
FractalBush.7z [3.36 KiB]
Downloaded 112 times

Author:  0CodErr [ Sat Jun 02, 2018 9:47 am ]
Post subject:  Re: FractalTree

Не совсем дерево, но всё же растение :)
Фрактальный папоротник.
Spoiler: Show
Attachment:
1.png
1.png [ 36.54 KiB | Viewed 3606 times ]
Для сборки — всё то же самое.
Attachment:
FractalFern.7z [2.95 KiB]
Downloaded 114 times

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/