memory heap
374 subscribers
2.54K photos
520 videos
52 files
3.12K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
John M. Vlissides, Mark A. Linton, "Applying Object-Oriented Design to Structured Graphics"

https://www.softwarepreservation.org/projects/c_plus_plus/library/interviews/graphic.pdf

#articles #graphics #oop #programming
memory heap
John M. Vlissides, Mark A. Linton, "Applying Object-Oriented Design to Structured Graphics" https://www.softwarepreservation.org/projects/c_plus_plus/library/interviews/graphic.pdf #articles #graphics #oop #programming
Экспериментирую с API для рисования в Guile-PNG.

Исходный код для генерации рисунка:
(define (main args)
(let* ((image (png->scm))
(color (u8-list->bytevector '(255 255 255 0))))

(let loop ((w 10))
(unless (= w 490)
(let ((rect (make <rectangle>
#:position (make <point>
#:x 10
#:y 10)
#:width w
#:height w
#:color color)))
(draw! image rect))
(loop (+ w 10))))

(scm->png image)))


В качестве входного изображения программе подаю на stdin изображение с чёрным фоном размером 500x500px, поверх которого выполняется отрисовка. Результат программа выводит в stdout, который уже перенаправляю в файл.

#guile #png #graphics #projects #scheme
👍1
Реализовал алгоритм отрисовки эллипсов.

(define (main args)
(let* ((image (png->scm))
(color (u8-list->bytevector '(255 255 255 0)))
(ellipse (make <ellipse>
#:width 300
#:height 200
#:center (make <point>
#:x 250
#:y 250)
#:color color)))

(draw! image ellipse)

(scm->png image)))


#guile #png #graphics #projects #scheme
2
Круг — частный случай эллипса.

(use-modules (rnrs bytevectors)
(oop goops)
(png)
(png graphics))

(define (main args)
(let* ((image (png->scm))
(color (u8-list->bytevector '(255 255 255 0)))
(circle (make <circle>
#:radius 200
#:center (make <point>
#:x 250
#:y 250)
#:color color)))

(draw! image circle)

(scm->png image)))

#guile #png #graphics #projects #scheme
👍31
David Thompson выпустил релиз Guile-WebSocket 0.1.0:
https://lists.gnu.org/archive/html/guile-user/2022-11/msg00045.html

Реализация клиенской и серверной стороны протокола WebSocket (RFC 6455).

Сайт проекта:
https://dthompson.us/projects/guile-websocket.html

#guile #scheme #websocket #networking
Выпустил релиз Guile-PNG 0.2.0 с добавлением API по отрисовке графических примитивов (точек, линий, ломаных линий, прямоугольников, эллипсов, кругов) поверх PNG-изображений:
https://lists.gnu.org/archive/html/guile-user/2022-11/msg00050.html

#guile #png #projects #scheme
1
Студент на практику принёс укулеле офигительной красоты. Первый раз такое вижу.
1
Ужин: рис с карри, помидорой, перцем чили и сельхозным, красной фасолью и зеленью.

#vegan #food #cooking
😍4