рисовалка графиков

Processing, playback of audio and video
  • Это я хотел сэкономить на области для параметров, а в результате затирался код. Интересно, что под KlbrInWin такого эффекта не было.
    Attachments
    graph-0.52.7z (7.89 KiB)
    исправленная версия
    Downloaded 556 times
  • Вот теперь все ок. :) Спасибо.
  • Заметил глюк в программе при работе с editbox-ом. Посмотрел в исходных кодах и обнаружил несовпадение структур, в программе (файл graph\use_library.h) :

    Code: Select all

    struct edit_box{
    dword width, left, top, color, shift_color, focus_border_color, blur_border_color,
    text_color, max, text, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old;
    };
    и в библиотеке box_lib :

    Code: Select all

    ed_struc_size=76
    struc  edit_box width,left,top,color,shift_color,focus_border_color,\
           blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
    {
    .width dd width
    .left dd left
    .top dd top
    .color dd color
    .shift_color dd shift_color
    .focus_border_color dd focus_border_color
    .blur_border_color dd blur_border_color
    .text_color dd text_color
    .max dd max
    .text dd text
    .mouse_variable dd mouse_variable
    .flags dd flags+0
    .size dd size+0
    .pos dd pos+0
    .offset dd 0
    .cl_curs_x dd 0
    .cl_curs_y dd 0
    .shift   dd 0
    .shift_old   dd 0
    }
    Как видно в программе нет переменной mouse_variable
    Еще в файле man.txt :
    а) если заданы точки и требуется провести кусочно-линейную функцию
    x1 y1 x2 y2 ; границы области построения
    x y
    x y ; значения
    ...

    б) если задана функция
    x1 y1 x2 y2 ; границы области построения
    =формула
    В программе границы области построения задаются не том порядке как указано, а вот так:

    Code: Select all

    x1 x2 y1 y2
    Так как я с компилятором C++ на Колибри не работал, то перекомпиллировать и проверить правильность работы не могу.
  • Добавил mouse_variable в структуру. Потестируйте...
    Attachments
    graph.zip (6.45 KiB)
    Downloaded 551 times
  • Баг - мусор при схлопывании окна (rolled up).
  • Итак, Я создал текстовый файл с расширением *.grf. В нём писал сначала обычное число, потом что-то вроде y=3, потом выражения сложнее. Но ничего не получилось, программа Graph ничего не нарисовала и выводит сообщение об ошибке. Как правильно пользоваться Graph'ом?
    Attachments
    Скриншот моих попыток.
    FRAPH.png (115.61 KiB)
    Скриншот моих попыток. Viewed 8990 times
  • viewtopic.php?f=38&t=1059&hilit=graph
    Попробуй такой файл, если коротко:
    -3 3 -1 5
    =1/(x*x)
  • Я бы попросил вас не плодить лишний раз темы, и отписываться в соответствующих уже существующих темах.
    Перенёс ~SoUrcerer
    to infinity and beyond
  • Спасибо большое за ответ!
    Прошу прощения, искал, но не догадался искать тему про графики функций в "Мультимедиа"...
  • Я пробую перенести Graph на библиотеки программы Table, чтобы объеденить их.

    У меня все компилируется нормально. Однако, при заливке на SVN получаю повторяющуюся ошибку http://builds.kolibrios.org/logs/svn7619-err.txt

    Code: Select all

    graph.obj : error LNK2001: unresolved external symbol _memset
    Но в graph.cpp нигде неты вызова memset().
    Что я делаю не так и почему линкер не находит функцию memset() которая вообще-то есть в исходниках?
    Из хаоса в космос
  • Leency wrote:почему линкер не находит функцию memset() которая вообще-то есть в исходниках?
    Linker doesn't read source code, it works with object files, i.e. it looks for _memset symbol in listed *.o files.
    Leency wrote:Что я делаю не так
    You try to link graph executable in graph_tablelib directory.

    Code: Select all

    link_msvc("graph")
    I added compilation of *.asm files to corresponding *.o files in r7620. Can be safely removed like you did before if you don't plan to move mem*.asm to graph_tablelib.
  • Table (our Excel app) compiles well when graph_tablelib doesn't want to.
    There are no requests to memset() in graph_tablelib sources so I still don't get from where this request in graph.obj comes from.
    Из хаоса в космос
  • Linker complains about _memset, not memset.
    I believe this is the case.
  • В рамках темы viewtopic.php?t=4555 [Drop extra compilers]
    начал работу по модификации приложения graph .
    Основная цель - добится сборки при помощи gcc и binutils (например, kos32-gcc, kos32-ld, kos32-as).
    Однако я ставлю большую задачу:
    - переписать на С (в оригинале используется C++);
    - добится сборки программы общими средствами и различными компиляторами: llvm/clang, OsDev gcc cross compiler, tcc cross compiler (kos32-gcc, kos32-ld, kos32-as, а также порт Tcc для KolibriOS я считаю специализированными средствами разработки - "заточенными" под KolibriOS).
    - несколько усовершенисвовать программу: добится независимой работы graph от сторонних программ (редактора текста).

    Планируемое время выполнение - 2 месяца с данного момента (примерно до 01.11.2022).

    Пока работа находится на 1-й стадии - добиваюсь компиляции отдельных частей программы (выполнено где-то на 30% - 50%).
    Пообочным результатом стали:
    fpu.obj (498 Bytes)
    Downloaded 51 times
    ,
    sstr.obj (495 Bytes)
    Downloaded 52 times
    .
    Но по поводу пообочных результатов я заведу вскоре отдельную тему (где и выложу исходный код).

    P.S.
    Я знаю о работе vitalkrilov с похожей целью, но
    - его версию оказалось не так то просто скомпилировать при помощи другого компилятора;
    - я не согласен с его решением, когда программа вызывается без параметров (оригинальное решение лучше).

    Edit1 [04.09.2022]: Удалось собрать (clang и как C-программу) и даже запустить - выглядит похоже, и даже график рисует :)
    Теперь остаётся исправить всё, что я недопонял в авторском тексте :?
    Edit2 [05.09.2022]: OffTopic
    Я всё время считал, что

    Code: Select all

    extern char *c;
    и

    Code: Select all

    extern char c[];
    синонимами.
    Однако это не так и, если подразумевается что-то вроде

    Code: Select all

    char c[500];
    То годен только последний вариант ... И в интернете отыскать объяснения не удалось ...
    (Вот такой я дилетант в программировании :x )
    Edit3: в автосборке скорее всего используется TCC вариант ибо в оригинальном имеется проблема с box_lib (передача одного аргумента через eax - принципиально ассемблерное соглашение о вызове)

    Code: Select all

    (хз ? послать : написать нормальную обёртку) box_lib.obj 
  • Who is online

    Users browsing this forum: No registered users and 0 guests