1 Pages (7 items)
Вопросы по Плагинам - Messages
#1 Posted: 10/21/2009 12:54:43 PM
К сожалению времени сейчас очень немного, поэтому мой первый плагин (Statistika случайные числа и распределения), для разбора полетов, выложу только к понедельнику))
Инструкция написана очень хорошо и подробно(не ожидал, что будет так просто), но лучше было бы немного менее конкретно писать и более широко. Т.е, например как обратиться к матрице я гадал минут 10-15 )) тип Tmatrix сбил с толку))) Может быть поподробнее о типах? И ещё очень интересно!!!! что за возвозможности с графикой есть (для начала хочу возможность строить гистограммы).. Только ли пользовательские графики? или можно размешать собственные контролы? Можно хотябы небольшую инструкцию как!!
Ну и по мелочам: Для чего нужно вот такое описание: new FunctionInfo("Mean", 1, "Mean('number') - Returns mean. (Среднее арифметическое массива [матрицы])", FunctionSection.Unknown)
Отличие и для чего тогда нужно this.description и this.name ???
Инструкция написана очень хорошо и подробно(не ожидал, что будет так просто), но лучше было бы немного менее конкретно писать и более широко. Т.е, например как обратиться к матрице я гадал минут 10-15 )) тип Tmatrix сбил с толку))) Может быть поподробнее о типах? И ещё очень интересно!!!! что за возвозможности с графикой есть (для начала хочу возможность строить гистограммы).. Только ли пользовательские графики? или можно размешать собственные контролы? Можно хотябы небольшую инструкцию как!!
Ну и по мелочам: Для чего нужно вот такое описание: new FunctionInfo("Mean", 1, "Mean('number') - Returns mean. (Среднее арифметическое массива [матрицы])", FunctionSection.Unknown)
Отличие и для чего тогда нужно this.description и this.name ???
#2 Posted: 10/21/2009 1:13:12 PM
WroteМожет быть поподробнее о типах?
Понял, обязательно напишу об этом.
WroteТолько ли пользовательские графики? или можно размешать собственные контролы? Можно хотябы небольшую инструкцию как!!
Над возможностью делать собственные контролы и/или влиять на уже существующие я ещё только работаю. На данный момент можно лишь добавлять отрисовку своих функций (об этом я тоже отдельно напишу).
WroteНу и по мелочам: Для чего нужно вот такое описание: new FunctionInfo("Mean", 1, "Mean('number') - Returns mean. (Среднее арифметическое массива [матрицы])", FunctionSection.Unknown)
Отличие и для чего тогда нужно this.description и this.name ???
Массив FunctionInfo будет использоваться для отображения в диалоге "Вставка Функций" (в текущей альфе это не реализовано). Переменные this.description, this.name и некоторые другие нужны для описания плагина в целом, т.к. один плагин может содержать в себе любое количество функций.
#3 Posted: 10/24/2009 7:35:53 PM
Некоторый прогресс есть, работать заставил. Но результат немного неожиданный.

Получается если я задал, что x - случайное, то если написать х=___ и ещё раз x=___ то результаты будут разные. В соседние формулы подставится разный x. В стандартной функции random та же фигня.(((
Выкладываю написанное, хочу комментарий. Может что-то можно делать проще.
Statistika.dll
MainClass.cs
4.sm
Получается если я задал, что x - случайное, то если написать х=___ и ещё раз x=___ то результаты будут разные. В соседние формулы подставится разный x. В стандартной функции random та же фигня.(((
Выкладываю написанное, хочу комментарий. Может что-то можно делать проще.
Statistika.dll
MainClass.cs
4.sm
#4 Posted: 10/24/2009 9:42:32 PM
Это не совсем фигня 
Попробуйте сделать так:
[MATH]for(i←1;i
Дело в том, что функция random(...), как и Ваши функции, реализованы только в численном модуле. Это значит, что через символьный они пройдут без изменений. Здесь необходимо отметить, что SMath Studio при присваивании пропускает правую часть именно через символьный модуль и все промежуточные результаты тоже держит в символьном виде (чтобы не накапливать погрешность). А значит, в матрице M у Вас находятся не результаты random(...) (условно говоря), а ещё не посчитанные функции (в этом можно убедится просто выведя результат M символьно ("->")). Т.е. функции эти будут считаться уже только в момент отрисовки, а поскольку при отрисовки графика происходит вычисление функции сначала в одной точке, потом во второй и так далее, то и матрица M для каждой точки всегда разная. Вот что бы бороться с такими ситуациями и была создана функция eval(...) - она принудительно переводит символьный результат в численный, вычисляя при этом random(...) или любые Ваши функции.
Большое спасибо за работу над плагином и тестирование последней версии программы.

Попробуйте сделать так:
[MATH]for(i←1;i
Дело в том, что функция random(...), как и Ваши функции, реализованы только в численном модуле. Это значит, что через символьный они пройдут без изменений. Здесь необходимо отметить, что SMath Studio при присваивании пропускает правую часть именно через символьный модуль и все промежуточные результаты тоже держит в символьном виде (чтобы не накапливать погрешность). А значит, в матрице M у Вас находятся не результаты random(...) (условно говоря), а ещё не посчитанные функции (в этом можно убедится просто выведя результат M символьно ("->")). Т.е. функции эти будут считаться уже только в момент отрисовки, а поскольку при отрисовки графика происходит вычисление функции сначала в одной точке, потом во второй и так далее, то и матрица M для каждой точки всегда разная. Вот что бы бороться с такими ситуациями и была создана функция eval(...) - она принудительно переводит символьный результат в численный, вычисляя при этом random(...) или любые Ваши функции.
Большое спасибо за работу над плагином и тестирование последней версии программы.
#5 Posted: 10/25/2009 1:53:26 PM
Что-то тут с Properties не то.
Раз требуется, чтобы Свойства были определены, то нужно требовать их в процессе наследования.
Абстрактные свойства можно декларировать в абстрактных классах,
т.е. нужно интерфейс заменить на абстрактный класс.
Отредактировано smath: Перемещено из Скачать SMath Studio » Альфа: SMath Studio 0.85.3578 (18 Октябрь 2009)
Раз требуется, чтобы Свойства были определены, то нужно требовать их в процессе наследования.
Абстрактные свойства можно декларировать в абстрактных классах,
т.е. нужно интерфейс заменить на абстрактный класс.
Отредактировано smath: Перемещено из Скачать SMath Studio » Альфа: SMath Studio 0.85.3578 (18 Октябрь 2009)
#6 Posted: 10/25/2009 2:30:28 PM
Я вообще догадался, что происходит, только вот как сделать, чтоб не копировать M в M2 не догадался. Вам спасибо за программу.
P.S. Замучался с графиками. (масштаб задавать колесом плохо - жудко долго крутить надо(( )
P.P.S. Замучался с вводом функций. пишу f(z,x) (или любые другие агрументы и в любом количестве) и аргумент не удалить. т.е. нельзя стереть х, чтоб было f(z), можно только стереть все и написать заново.((
P.S. Замучался с графиками. (масштаб задавать колесом плохо - жудко долго крутить надо(( )
P.P.S. Замучался с вводом функций. пишу f(z,x) (или любые другие агрументы и в любом количестве) и аргумент не удалить. т.е. нельзя стереть х, чтоб было f(z), можно только стереть все и написать заново.((
#7 Posted: 10/25/2009 9:58:19 PM
WroteЧто-то тут с Properties не то.
Не понял, что Вас смущает. Свойства требуются и без их определения создать плагин не получится. Не понял, чем тут абстрактный класс может помочь, т.к. с его помощью (если от него наследоваться, используя вместо интерфейса) получится аналогичный результат.
Вроде проще сделать некуда:
public string Description { get { return "Plugin description here."; } }
WroteP.S. & P.P.S.
Программа развивается и эти проблемы, конечно, будут решены.
1 Pages (7 items)
-
New Posts
-
No New Posts