abc png
(5.47 KB, 1200x800)
(5.47 KB, 1200x800)
Вчера делал дюпинг. Толком не проверил, для дебаггинга языка надо сделать библиотеку repr. Суть токова, я понял, что нельзя разрешать операции между мультивекторами разной размерности: abc[:] = a[:][:] + b[:][:], потому что будут проблемы. Зато можно одинаковой размерности: abc[:][:] = a[:][:] + b[:][:] Но есть проблема, когда мы выбираем, старт, стоп и шаги: abc[0:5] = a[0:3:2] + b[0:1] Левый элемент говорит, что хочет провести операцию на пятью элементами и заполнить ими массив. Но a выдаёт только по индексам 0 и 2, а b по индексу 0. В таком случае надо просто сдюпать, то есть будет a[0],a[2],a[0],a[2],a[0] и b[0],b[0],b[0],b[0],b[0]. Но там всё довольно сложно, я сделал ремеиндер для счётчика и будет a[0],a[2],a[1],a[0],a[2]. В любом случае, дюпинг пока не очень стандартизирован и его не следует использовать с шагами. Зато удобно, если хочешь много элементов умножить на число: a[:] *= [number][:]. В итоге мне надо ещё штук 15 фич ввести, чтобы выпустить пререлиз Иколайси v1.0. Я ещё придумал как реализовать модульность библиотек. Есть @import, а надо будет сделать что-то типа @importnames или как ещё назвать, эта директива препроцессора кроме импортирования будет возвращать лист имён библиотек. Таким образом, можно будет импортировать все библиотеки из некоторой директории, а потом прочекать их константы и спрепроцессить в основную библиотеку. В константах могут быть ID модулей, коллбеки всякие, структуры. Кстати, также я позанимался своей ГУИ-библиотекой, начал вводить плоты. На картинке очень простой плот Graph2D. Функции и линии рисуются не при помощи моего графичекого движка (потому что он не работает с линиями), а при помощи моей библиотеки растеризации линий и точек. Я планирую эту библиотеку сделать такой, чтобы можно было рисовать и при помощи кистей (как в фотошопах), и разными стилями (пунктир, точка-пунктир). Конкретно в Graph2D надо будет добавить антиалиазинг, отображение имён осей, сделать возможность неортонормированности, легенду самого графика, значения нотчей осей, а также элементы управления самого графика, чтобы масштабировать его, транслейтить, гетать точку курсора, етц. Кроме Graph2D я планирую добавить Graph3D — для отображения функций двух и трёх аргументов. А также их модификации — полярный, сферический, цилиндрический графики, что-то с вокселями попробовать. А кроме графиков и гистограммы самые разнообразные нужны. Очень важны диаграммы (где элементы соединены линиями и важно, чтобы линии были кликабельными).