JOURFIXE
https://jou.rfixe.com/forum/

Need help! Ой как NEED HELP!
https://jou.rfixe.com/forum/viewtopic.php?f=12&t=7931
Page 3 of 6

Author:  Domnitch [ Fri Nov 01, 2019 2:46 pm ]
Post subject:  Re: Need help! Ой как NEED HELP!

It was originally called Mocha... :mrgreen:

Author:  jourfixe [ Fri Nov 01, 2019 2:57 pm ]
Post subject:  Re: Need help! Ой как NEED HELP!

Domnitch wrote:
It was originally called Mocha... :mrgreen:
lol. Натюрлих. Хотя произносится оно "Мока", но да.

Author:  Alona [ Sun Nov 03, 2019 1:21 pm ]
Post subject:  Re: Need help! Ой как NEED HELP!

jourfixe wrote:
> Можно я иногда буду в эту ветку глупые вопросы задавать?
Да ради Будды :)
Ок.

Один глюпый вопрос есть сразу же. Даже не один, как выясняется. Миша Домнич, спрашиваю и тебя тож. :rose:

jourfixe wrote:
Зы. Вообще, это порочная практика - писать функции так, что вместо входных параметров они используют глобальные переменные. Функция по возможности должна быть независима от глобального состояния. "Чистая" функция при одних и тех же входных параметрах выдаёт один и тот же результат (в определение "чистой" функции входит ещё и отсутствие побочных эффектов, но это отдельная тема).


У меня есть два графических бокса (на самом деле, я хочу больше, но если заработает с двумя - заработает и с пятью).

И я хочу, чтобы когда я тащу точку на одном графике - на втором оно тоже менялось в соответствии.
По минимуму один - родитель, второй - только отвечает.

С полгода назад я пыталась понять, как это сделать по примерам в гугле, но обломалась.
И вот недели полторы назад я ВНЕЗАПНО обнаруживаю, что вот таким макаром я вообще осуществляю кросс-опыление. Тянем за первый - меняется второй, тянем за второй - меняется первый.

(формулы, как они связаны, конечно, сложнее, чем тупое копирование, но не суть).

<jsxgraph width="400" height="600" box="box1">
var board1 = JXG.JSXGraph.initBoard('box1', {boundingbox: [-1.,20.,7.,-2.], axis:true,grid:true,showCopyright:false, showNavigation:false});

var InitX = 3.;
var InitY = 2.;
var p1 = board1.create('point', [InitX , InitY]);
p1.on('drag', Move1);

</jsxgraph>

<jsxgraph width="400" height="600" box="box2">
var board2 = JXG.JSXGraph.initBoard('box2', {boundingbox: [-1.,20.,7.,-2.], axis:true,grid:true,showCopyright:false, showNavigation:false});

var InitX = 3.;
var InitY = 2.;
var p2 = board2.create('point', [InitX , InitY]);

function Move1(){
XNew = p1.X();
YNew = p1.Y();
p2.moveTo([XNew,YNew]);
}

function Move2(){
XNew = p2.X();
YNew = p2.Y();
p1.moveTo([XNew,YNew]);
}
p2.on('drag', Move2);

</jsxgraph>
Причем, заметь иезуитскую хитровыделанность: функцию на драг разных точек я приписываю им в их собственных боардах, а вот сами функции прописываю в самом последнем, когда остальные уже существуют. Получилось случайно - но оно работало!
Кароч, именно в тот момент я словила драйв и наваляла больше тысячи строк кода (тысячу в одном плюс незаконченный второй прымер.

А потом - дрым-с!!! Сначала упала вся мудля, весь сайт не работал. Потом заработал, но без графики. А потом графика вернулась, но перекрестное опыление уже не работает.

Первый вопрос.
Я уже поняла, что, видимо, так делать нехорошо. А как нада? Если, канешн, это не слишком сложно и долго писать.


Хуже того - перестали работать работавшие до того довольно простые примеры с одним окном, где, например, функции были присвоены кнопочкам. Функции, вестимо, меняли экран через глобальные переменные, которые были определены в теле главной программы. (Если я вообще правильно употребляю понятие глобальной переменной - кароч, внутри соответствующего <jsxgraph> до того, как встретится </jsxgraph>). В общем, я смотрела примеры в гугле и мараковала и пробовала. Полгода всё работало в лучшем виде, у меня было куча работающих примерчиков. Которые, повторюсь, более не работают.

var button = board1.create('button', [5.,18., 'Start again', StartAgain], {});
function StartAgain(){
p1.moveTo([InitX , InitY]);
}

Второй вопрос.
С кнопочными функциями я тоже накосячила? Так совсем нельзя?


***********************************

Ну и последний вопрос.
Я по твоему наставлению одолела функцию вычисления высоты при падении с заданными параметрами начальной высоты, скорости и ускорения. Определяю ее до того, как создаю боард вот так.

<jsxgraph width="400" height="600" box="box1">
function fall(){
return arguments[1] + arguments[2]*arguments[0]+0.5*arguments[3].*arguments[0]*arguments[0];
}
var board1 = JXG.JSXGraph.initBoard('box1', {boundingbox: [-1.,20.,7.,-2.], axis:true,grid:true,showCopyright:false, showNavigation:false});

time = 3.;
Y0 = 10.;
V0 = 2.;
Accel = -10.;
var yt = board1.create('point', [time , function() {return fall(time , Y0 , V0 , Accel);}]);

Третий вопрос.
Я могу сделать, чтобы из board2 я тоже могла вызывать ту же самую функцию. Потому что сейчас она ее не считает. Только если я ее второй раз пропишу под конструктором второго боарда.

<jsxgraph width="400" height="600" box="box2">
function fall(){
return arguments[1] + arguments[2]*arguments[0]+0.5*arguments[3].*arguments[0]*arguments[0];
}
var board2 = JXG.JSXGraph.initBoard('box2', {boundingbox: [-1.,20.,7.,-2.], axis:true,grid:true,showCopyright:false, showNavigation:false});

Я как-то смутно подозреваю, что это неправильно. :mrgreen:
Но мозгов, понять как нада - не хватает. :bang:


Я, канешн, не ожидаю, что вы с Домничем кинетесь писать мне код.

По минимуму мне хватит общефилософского объяснения, что и где определяется. Додумывать у меня еще иногда получается.

Но если паче чаяния вы знаете сразу ответ, как надо писать какой-то из трех вопросов (или сразу три?!) - вы меня просто осчастливите.

ЗЫ. Пожалуй, наиважнейший вопрос - четвертый.

Не могла ли я лично уронить общеизраильскую мудлю этими своими экспериментами? Потому что я надеюсь в ближайщие дни добраться до программистов, которые эту систему держат и программируют, и не хотелось бы получить тумаков. Если что - буду заметать следы. :lol:

Author:  jourfixe [ Sun Nov 03, 2019 10:25 pm ]
Post subject:  Re: Need help! Ой как NEED HELP!

> Alona

Оговорка: я давно не занимался веб-программированием вообще и джаваскриптом в частности, пишу по воспоминаниям.

4 вопрос: сильно сомневаюсь

Остальные:
> Причем, заметь иезуитскую хитровыделанность: функцию на драг разных точек я приписываю им в их собственных боардах, а вот сами функции прописываю в самом последнем, когда остальные уже существуют. Получилось случайно - но оно работало!

Я не уверен, что такой подход гарантирует порядок выполнения (а важен именно порядок, чтобы элементы страницы были определены раньше, чем код, который ими пользуется, приписывать функцию на драг в том же месте, где определен боард необязательно). Кто его знает, как твой браузер параллелизирует загрузку страницы. Симптом "то работает, то не работает" какбэ намекает.

Создай ещё одну функцию, перенеси в неё весь свой код, и вызови её в ответ на событие "window.onload" Или даже не создавай новое имя, а перенеси прямо в триггерную функцию, вроде такого:

window.onload = function(e){
// all other code goes here including Move1 and Move2
}

Т.е. код выполнится только после загрузки страницы, в заданном порядке и когда имена элементов уже определены.

Author:  Alona [ Mon Nov 04, 2019 6:00 am ]
Post subject:  Re: Need help! Ой как NEED HELP!

jourfixe wrote:
> Alona

Оговорка: я давно не занимался веб-программированием вообще и джаваскриптом в частности, пишу по воспоминаниям.

4 вопрос: сильно сомневаюсь

Остальные:
> Причем, заметь иезуитскую хитровыделанность: функцию на драг разных точек я приписываю им в их собственных боардах, а вот сами функции прописываю в самом последнем, когда остальные уже существуют. Получилось случайно - но оно работало!

Я не уверен, что такой подход гарантирует порядок выполнения (а важен именно порядок, чтобы элементы страницы были определены раньше, чем код, который ими пользуется, приписывать функцию на драг в том же месте, где определен боард необязательно). Кто его знает, как твой браузер параллелизирует загрузку страницы. Симптом "то работает, то не работает" какбэ намекает.

Создай ещё одну функцию, перенеси в неё весь свой код, и вызови её в ответ на событие "window.onload" Или даже не создавай новое имя, а перенеси прямо в триггерную функцию, вроде такого:

window.onload = function(e){
// all other code goes here including Move1 and Move2
}

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

Беда в том, что я же работаю из под мудли. Которая добавляет свой код, которого я даже не вижу.
С практической точки зрения window.onload = function(e){ создать не могу, мудля эту строку вспринимает как текст и выводит вверху страницы с вопросом.

Но понимать, что спрашивать у программеров - понимаю всё луччше.

Неразъясненной для меня осталась сова с функциями, которыми я обновляю экран. Одно окно, и всю трихомундию я получаю из главной процедуры, а не как параметры функции. Имена точек, линии, все, что надо проверить и\или обновить.
Так можно?

И еще. Если я одну и ту же функцию цепляю на несколько элементов: обновить графику, если потащила любую из двух точек, или вообще любую из точек массива(группы).

p1.on('drag', UpdateGraph);
p2.on('drag', UpdateGraph);
p3.on('drag', UpdateGraph);

Я могу при вызове функции таким макаром поймать, кто ее вызвал?

:rose: :rose: :rose: :rose: :rose: :rose:

Author:  jourfixe [ Mon Nov 04, 2019 8:28 am ]
Post subject:  Re: Need help! Ой как NEED HELP!

Alona wrote:
С практической точки зрения window.onload = function(e){ создать не могу, мудля эту строку вспринимает как текст и выводит вверху страницы с вопросом.
Окружи его тэгами <script language="javascript">...</script>
Alona wrote:
Я могу при вызове функции таким макаром поймать, кто ее вызвал?
Да, можешь. В функцию поступает аргумент е (event), который ты пока что игнорируешь и не прописываешь. У event-а в свою очередь есть параметр (вроде source, надо пробовать/дебагать), который и содержит "источник" - элемент, действие над которым стало триггером.

P.S. погуглил - не "source", наоборот, "target". Имеет смысл. А кнопкам надо дать имена, чтоб было понятно кто есть кто.

Author:  Domnitch [ Tue Nov 05, 2019 6:42 am ]
Post subject:  Re: Need help! Ой как NEED HELP!

Мне кажется крайне подозрительным, что в одном jsxgraph определяются функции для другого.
В нормальном языке это должно было бы вызвать проблемы из-за области видимости.

Больше пока сказать ничего не могу - я с жабаскриптом дела не имел от слова вообще.

Author:  Alona [ Sun Oct 31, 2021 10:49 am ]
Post subject:  Re: Need help! Ой как NEED HELP!

Мальчики, вдруг тут кто сейчас зайдет - очень нужен хэлп по деликатному вопросу.

Что является интеллектуальной собственностью в программировании? Если знаете про преподавание - тоже интересно.

Ну вот, к примеру - написала я некую компьютерную симуляцию по физике и/или компьютерные упражнения. Что в этом может быть МОИМ - куски кода? (какие именно?) дизайн? методическая идея? И как это защитить? Точнее даже сказать - если человек хочет это использовать - на что он должен ссылаться?

Совершенный профан в этой области. И - ну очень надо, и как всегда срочно!

Author:  Rembat [ Sun Oct 31, 2021 11:11 am ]
Post subject:  Re: Need help! Ой как NEED HELP!

Alona wrote:
Мальчики, вдруг тут кто сейчас зайдет - очень нужен хэлп по деликатному вопросу.

Что является интеллектуальной собственностью в программировании? Если знаете про преподавание - тоже интересно.

Ну вот, к примеру - написала я некую компьютерную симуляцию по физике и/или компьютерные упражнения. Что в этом может быть МОИМ - куски кода? (какие именно?) дизайн? методическая идея? И как это защитить? Точнее даже сказать - если человек хочет это использовать - на что он должен ссылаться?

Совершенный профан в этой области. И - ну очень надо, и как всегда срочно!

У Деда Григория дочь когда-то была юристом по контрактному праву.

Author:  Alona [ Sun Oct 31, 2021 2:27 pm ]
Post subject:  Re: Need help! Ой как NEED HELP!

Rembat wrote:
Alona wrote:
Мальчики, вдруг тут кто сейчас зайдет - очень нужен хэлп по деликатному вопросу.

Что является интеллектуальной собственностью в программировании? Если знаете про преподавание - тоже интересно.

Ну вот, к примеру - написала я некую компьютерную симуляцию по физике и/или компьютерные упражнения. Что в этом может быть МОИМ - куски кода? (какие именно?) дизайн? методическая идея? И как это защитить? Точнее даже сказать - если человек хочет это использовать - на что он должен ссылаться?

Совершенный профан в этой области. И - ну очень надо, и как всегда срочно!

У Деда Григория дочь когда-то была юристом по контрактному праву.
Спасибо, но мне юрист (пока, гы ;) ) не нужен.

Я пока порылась и детализировала вопрос.

Вот, один кент, который произвожит контент аналогичный моему, ставит в шапку такой код:
Code:
<!--
Copyright 2020 by Dominique Bauer
Creative Commons CC0 1.0 Universal Public Domain Dedication
-->


Я порылась, и гугль дает такую ссылку:
https://creativecommons.org/publicdomain/zero/1.0/
В связи с этим вопросы:
1 Так есть копирайт, или его-таки нету при такой декларации?
2. Чаловек, который будет юзать этот код - должен упоминать автора, или не должен? (и бабках речь не идёт, только о кредите, или как это там по-русску? славе и паблисити :mrgreen: )

Page 3 of 6 All times are UTC - 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/