JOURFIXE

It is currently Thu Mar 28, 2024 1:18 pm

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 56 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Fri Nov 01, 2019 2:46 pm 
Offline
User avatar

Joined: Sun Sep 09, 2007 11:53 pm
Posts: 18377
Location: St.-Petersburg, Russia
It was originally called Mocha... :mrgreen:

_________________
Кот домашний средней пушистости


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Fri Nov 01, 2019 2:57 pm 
Offline

Joined: Fri Sep 07, 2007 11:39 am
Posts: 7076
Domnitch wrote:
It was originally called Mocha... :mrgreen:
lol. Натюрлих. Хотя произносится оно "Мока", но да.

_________________
Пух. Винни Пух.


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Sun Nov 03, 2019 1:21 pm 
Offline
User avatar

Joined: Thu Sep 06, 2007 12:20 am
Posts: 18469
Location: Шоам, Израиль
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:


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Sun Nov 03, 2019 10:25 pm 
Offline

Joined: Fri Sep 07, 2007 11:39 am
Posts: 7076
> Alona

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

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

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

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

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

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

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

_________________
Пух. Винни Пух.


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Mon Nov 04, 2019 6:00 am 
Offline
User avatar

Joined: Thu Sep 06, 2007 12:20 am
Posts: 18469
Location: Шоам, Израиль
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:


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Mon Nov 04, 2019 8:28 am 
Offline

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

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

_________________
Пух. Винни Пух.


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Tue Nov 05, 2019 6:42 am 
Offline
User avatar

Joined: Sun Sep 09, 2007 11:53 pm
Posts: 18377
Location: St.-Petersburg, Russia
Мне кажется крайне подозрительным, что в одном jsxgraph определяются функции для другого.
В нормальном языке это должно было бы вызвать проблемы из-за области видимости.

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

_________________
Кот домашний средней пушистости


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Sun Oct 31, 2021 10:49 am 
Offline
User avatar

Joined: Thu Sep 06, 2007 12:20 am
Posts: 18469
Location: Шоам, Израиль
Мальчики, вдруг тут кто сейчас зайдет - очень нужен хэлп по деликатному вопросу.

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

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

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


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Sun Oct 31, 2021 11:11 am 
Offline

Joined: Tue Sep 04, 2007 11:05 pm
Posts: 7963
Location: California, USA
Alona wrote:
Мальчики, вдруг тут кто сейчас зайдет - очень нужен хэлп по деликатному вопросу.

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

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

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

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


Top
 Profile  
 
 Post subject: Re: Need help! Ой как NEED HELP!
PostPosted: Sun Oct 31, 2021 2:27 pm 
Offline
User avatar

Joined: Thu Sep 06, 2007 12:20 am
Posts: 18469
Location: Шоам, Израиль
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: )


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 56 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group