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... |
Author: | jourfixe [ Fri Nov 01, 2019 2:57 pm ] |
Post subject: | Re: Need help! Ой как NEED HELP! |
Domnitch wrote: It was originally called Mocha... lol. Натюрлих. Хотя произносится оно "Мока", но да.
|
Author: | Alona [ Sun Nov 03, 2019 1:21 pm ] |
Post subject: | Re: Need help! Ой как NEED HELP! |
jourfixe wrote: > Можно я иногда буду в эту ветку глупые вопросы задавать? Ок.Да ради Будды Один глюпый вопрос есть сразу же. Даже не один, как выясняется. Миша Домнич, спрашиваю и тебя тож. 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}); Я как-то смутно подозреваю, что это неправильно. Но мозгов, понять как нада - не хватает. Я, канешн, не ожидаю, что вы с Домничем кинетесь писать мне код. По минимуму мне хватит общефилософского объяснения, что и где определяется. Додумывать у меня еще иногда получается. Но если паче чаяния вы знаете сразу ответ, как надо писать какой-то из трех вопросов (или сразу три?!) - вы меня просто осчастливите. ЗЫ. Пожалуй, наиважнейший вопрос - четвертый. Не могла ли я лично уронить общеизраильскую мудлю этими своими экспериментами? Потому что я надеюсь в ближайщие дни добраться до программистов, которые эту систему держат и программируют, и не хотелось бы получить тумаков. Если что - буду заметать следы. |
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); Я могу при вызове функции таким макаром поймать, кто ее вызвал? |
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. Чаловек, который будет юзать этот код - должен упоминать автора, или не должен? (и бабках речь не идёт, только о кредите, или как это там по-русску? славе и паблисити ) |
Page 3 of 6 | All times are UTC - 8 hours [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |