OberonCore
https://forum.oberoncore.ru/

OberonJS онлайн IDE
https://forum.oberoncore.ru/viewtopic.php?f=115&t=6006
Страница 3 из 5

Автор:  Дмитрий Дагаев [ Понедельник, 20 Февраль, 2017 20:42 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Можно сделать кнопки 'Сохранить Release', 'Очистить Release' и переход на страничку model/51-release. И разработчик, зарегистрировавшись на Вашем сайте, сможет страничку подредактировать и что-то для себя нарисовать. Хоть презентацию а-ля PowerPoint https://processing.org/examples/charactersstrings.html с загрузкой данных из JSON.

Автор:  Иван Денисов [ Понедельник, 20 Февраль, 2017 21:10 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Дмитрий Дагаев писал(а):
Можно сделать кнопки 'Сохранить Release', 'Очистить Release' и переход на страничку model/51-release. И разработчик, зарегистрировавшись на Вашем сайте, сможет страничку подредактировать и что-то для себя нарисовать. Хоть презентацию а-ля PowerPoint https://processing.org/examples/charactersstrings.html с загрузкой данных из JSON.

Дошло, чтобы без исходного кода показывать результат по другому URL. Сделаю!

Автор:  Иван Денисов [ Понедельник, 20 Февраль, 2017 21:41 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Публикация теперь выглядит примерно так:
https://models.molpit.org/ready/51

Публикация происходит при нажатии кнопки "экспорт", которая теперь видна только автору модели.

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 07:41 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Починил баг с установкой шрифта. Теперь Times New Roman выставляется.
https://models.molpit.org/model/64

Вот еще выяснил, чтобы шрифт рисовался со сглаживанием, надо обязательно в процедуре отрисовки вызывать установку цвета фона.
https://forum.processing.org/two/discus ... ntialiased

Код:
PROCEDURE Draw;
BEGIN
  D.SetBackground(0H);
  D.SetFont("Times New Roman");
  ...
END Draw;

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 13:42 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Пока проблема с публикацией скриптов, содержащих юникодные символы. Ломаю голову над тем, как правильно передать JavaScript в базу данных. На удивление это просто не получается решить.

Автор:  Rifat [ Вторник, 21 Февраль, 2017 14:38 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

BASE64 не помогает?

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 15:22 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Rifat писал(а):
BASE64 не помогает?


Уже перепробовал несколько способов. Но все работает удивительно глючно!

Вот например такая функция кодирует "Привет мир!" корректно
Код:
function b64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
        return String.fromCharCode('0x' + p1);
    }));
}

https://models.molpit.org/ready/49

А число π не хочет уже кодировать. Пришлось пока заменить на Pi
https://models.molpit.org/ready/52

С русским тоже проблема на самом деле, поэтому приложение Дмитрия Викторовича тоже пока корректно не публикуется.
Если закомментировать вторую строку, то чудесно публикуется
https://models.molpit.org/ready/64
а если нет, то фиг вам.

Какой-то дивный пример глючности современного IT...

Автор:  prospero78 [ Вторник, 21 Февраль, 2017 15:53 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Это нам какбэ говорит: UTF8 -- жуткая кодировка.
Можно было с кодировкой решить вопрос гораздо проще.
Например так:
Код:
\[cp1251]
бла-бла-бла
\[latin1]
momentum mori


В-общем-то, в ББ вопрос правильно поставлен: контейнер(разметка+содержимое) -> отображение.
Голый неуправляемый текст -- это зло.

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 16:08 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

prospero78 писал(а):
В-общем-то, в ББ вопрос правильно поставлен: контейнер(разметка+содержимое) -> отображение.
Голый неуправляемый текст -- это зло.

В ББ всё проще, UTF-16, на каждую букву два байта :) Но для Web это не хорошо, так как большая часть на латинице, и на utf16 весь контент в два раза больше места бы занимал.
Но так как это оффтопик, то прошу Валеру в этой теме не продолжать обсуждение ББ.

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 19:18 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Разобрался, отказавшись от base64 вообще. Теперь хорошо работает публикация кода с любыми символами.

Автор:  Дмитрий Дагаев [ Вторник, 21 Февраль, 2017 20:30 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Иван!

В модуле Draw кое-чего не хватает: D.Rect(), D.Ellipse(). Используются, скажем, здесь https://processing.org/examples/button.html. Я могу модифицировать Draw, но SVN тут нет. Что делать?

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 22:32 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Дмитрий Дагаев писал(а):
Иван!

В модуле Draw кое-чего не хватает: D.Rect(), D.Ellipse(). Используются, скажем, здесь https://processing.org/examples/button.html. Я могу модифицировать Draw, но SVN тут нет. Что делать?

Так получается, что пока не все функции добавлены. Ellipse уже добавил, сейчас добавлю Rect. Все чего не хватает буду в Draw добавлять. Пишите тут или в личном сообщении или по почте.

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 22:36 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Добавил
Код:
  PROCEDURE Ellipse*(x, y, w, h: REAL);
  BEGIN
    JS.do("Instance.ellipse(x,y,w,h);");
  END Ellipse;
 
  PROCEDURE Rect*(x, y, w, h: REAL);
  BEGIN
    JS.do("Instance.rect(x,y,w,h);");
  END Rect;
 
  PROCEDURE RectRounded*(x, y, w, h, r: REAL);
  BEGIN
    JS.do("Instance.rect(x,y,w,h,r);");
  END RectRounded;

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 22:37 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Нажатие клавиш мыши теперь надо еще добавить, как я понимаю, чтобы на кнопки нажимать.

Автор:  Иван Денисов [ Вторник, 21 Февраль, 2017 23:10 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Добавил обработку нажатия и отпускания мыши.
Получился чудный слайдер.
https://models.molpit.org/ready/52

Автор:  Иван Денисов [ Среда, 22 Февраль, 2017 05:24 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Добавил базовый модуль для работы со строками. Теперь возможно переводить действительные и целые числа в строки, объединять строки перед отрисовкой.
https://models.molpit.org/ready/52

И у меня, к сожалению, на этой неделе уже мало будет времени. Может быть кто-то может помочь с доработкой перевода?
https://models.molpit.org/oberon.html

Автор:  Иван Денисов [ Среда, 22 Февраль, 2017 05:29 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Дмитрий Дагаев писал(а):
Иван!

В модуле Draw кое-чего не хватает: D.Rect(), D.Ellipse(). Используются, скажем, здесь https://processing.org/examples/button.html. Я могу модифицировать Draw, но SVN тут нет. Что делать?

Дмитрий Викторович, еще, чтобы не ограничивать полет вашей фантазии и не ждать пока я добавлю что-то, создайте второй модуль в своей модели с названием, например, Draw2. Скопируйте в него содержимое Draw. Меняйте его под ваши задачи и используйте. А я буду с учетом вашего опыта переносить в базовый Draw.

Вложение:
newModule.png
newModule.png [ 4.48 КБ | Просмотров: 8596 ]

Автор:  Дмитрий Дагаев [ Четверг, 23 Февраль, 2017 11:53 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Меняю в Draw2, столкнулся с проблемой.
Часть координат (String, SetSize) - INTEGER, а другая часть - (Ellipse, Rect) REAL. Преобразования real - integer нет. Ни присвоить, ни сравнить. Приходится дублировать функции (String, Stringr) в Draw2.

Автор:  Дмитрий Дагаев [ Четверг, 23 Февраль, 2017 12:20 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

Нашел FLT(), FLOOR(). Вопрос закрыт.

Автор:  Дмитрий Дагаев [ Четверг, 23 Февраль, 2017 16:19 ]
Заголовок сообщения:  Re: OberonJS онлайн IDE

На данном этапе нарисовал 2 примера. Пока имеем 3 проблемки:
1. не публикуется https://models.molpit.org/ready/64
2. нет поддержки загрузки jpg с Вашего сервера, как в https://processing.org/reference/PImage.html
3. не выставляет mouseX, mouseY при запуске моего примера с мобильника под Андроидом (не мышка, touch screen). Приходится дважды нажимать кнопку.

Страница 3 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/