Задать вопрос
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    doox911, в примере на мой взгляд сильно намутили, ковырять его не буду, уж извините. Могу дать пару рекомендаций по реализации (при этом скорее всего большая часть рекомендаций уже реализована в d3)

    1. Всю работу с элементами производите в координатах самого листа (они не меняются в зависимости от масштабирования и смещения)
    2. Преобразование координат канваса в координаты листа в данном случае можно проводить по формуле
    Хлиста = (Хканваса - Xсмещение)*масштаб.
    Хканваса = смещение + Хлиста/масштаб
    где:
    Хлиста - координаты относительно точки листа с нулевыми координатами
    Хканваса - координаты в пикселях относительно нижнего левого угла канваса (координату y необходимо инвертировать y = Hканваса - y)
    Hканваса - высота канваса в пикселях
    Wканваса - ширина канваса в пикселях
    Xсмещение - смещение по оси Х точки листа с координатами [0:0] в пикселях относительно нижнего левого угла канваса
    масштаб - масштаб ))) (считается по формуле Hвидимой_области/Hканваса или Wвидимой_области/Wканваса
    видимая область - та область листа что видна в канвасе
    Hвидимой_области - высота видимой области листа в условных единицах измерения самого листа
    Wвидимой_области - ширина видимой области листа в условных единицах измерения самого листа
    Для Y пересчет производится по аналогии с X
    3. для удобства все функции рисования должны принимать в качестве координат - координаты листа (не канваса). Это автоматом реализует пункт 1. При этом при отображении видимой области на канвас, данные координаты пересчитываются в координаты канваса по второй формуле из п.2
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    doox911, пример что вы дали Ваш или взят откуда то?
    ЗЫ: уж слишком много в нем намудрили с масштабированием)
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    doox911, Ваш пример вроде полностью рабочий при любом масштабе. Что я упускаю?
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    doox911, про 1, x y в какой системе координат, листа или канваса?

    А еще лучше дайте рабочий вариант графика в jsfiddle или codepen и минут через 10 дам вам ответ на ваш вопрос)
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    doox911, ок, то есть как я и предполагал - корректные координаты это координаты на листе (не канвасе) с учетом масштаба и смещений.
    Теперь попробуем разобраться, поэтому ответьте еще на ряд вопросов:)
    1. d3.mouse(this)[0] и d3.mouse(this)[1] - я правильно понимаю что это координаты курсора к пикселях относительно канваса?
    2. d3.mouse(this)[0]-50 - зачем тут -50?
    3. x_scale и y_scale это что? вспомогательные объекты d3? скиньте их описание.
    4. x(y)_scale.invert - что делает invert?
  • Как получить корректное значение курсора?

    lastuniverse
    @lastuniverse
    Я если честно, совершенно не в теме (никогда не имел дело с d3), но мне почемуто кажется, что x_scale и y_scale должны автоматически учитывать масштаб.
    И вот еще вопросик, что по вашему мнению будет "корректными координатами", координаты в условной системе координат на листе/графике с учетом масштаба или координаты на канвасе в пикселях?

    PS: делал как то такие штуки (раз, два), без всяких библиотек на чистом канвасе. Так вот, по опыту скажу, что с такими штуками удобнее работать в условной системе координат листа, нежели постоянно пересчитывать координаты между координатами листа и координатами канваса с учетом смещерия листа по осям и его масштаба.
  • Где ошибка в попытке отправить данные аяксом, используя PATCH?

    lastuniverse
    @lastuniverse
    не знаю оно или не оно (поможет или нет) но есть в нете похожий вопрос на qaru (ссылку не дает вставить тостер:)
    и в ответ пишут:

    Метод $.ajax поддерживает HTTP PATCH.

    Проблема, которую вы видите, заключается в том, что метод ajax ищет PATCH в заголовке ответа Access-Control-Allow-Methods параметров предполетной проверки. Либо этот заголовок отсутствует в вашем ответе, либо метод PATCH не был включен в значение этого заголовка. В любом случае проблема возникает на сервере, а не на вашем клиентском коде.
  • Как получить доступ к предыдущему или следующему элементу из коллбека метода map?

    lastuniverse
    @lastuniverse
    А третий это исходный массив, соответственно:

    list.map((value, index, array)=>{
      //предыдущий элемент (если существует)
      array[index-1]
    
      // текущий элемент
      value
    
      //следующий элемент (если существует)
      array[index+1]
    
    });
  • Как с помощью bcrypt зашифровать в строку?

    lastuniverse
    @lastuniverse
    grinat, глупость говорите. На фронт не надо передавать ключ для расшифровки. Для закрытых каналов генереруются по паре ключей (открытый и закрытый) на обоих сторонах соединения. Далее открытые ключи (предназначены для шифрования) передаются друг другу, а закрытыми ключами информация расшифровывается.
  • Сайт в стиле vaporwave?

    lastuniverse
    @lastuniverse
    Randewoo, уж больно музон навевает ощущения определенные, попадающие в ассоциативный ряд с "моментом" )))
  • Как разбить массив на части?

    lastuniverse
    @lastuniverse
    или так
    array.reduce((acc, v, i) => ((i&1 ? acc[i>>1][1] = v : acc[i>>1] = [v]), acc), [])


    ЗЫ: жаль что вы удовлетворились только первым ответом, и даже не посмотрели остальные варианты. Мы ведь так старались показать вам многогранность JS :)
  • Как спарсить сайт node js?

    lastuniverse
    @lastuniverse
    Далеко не факт, что нужный сайт с данными позволит вот так просто подключиться по вебсокетам и качать данные. А в случае если при подключении по вэбсокетам еще и проверяются данные сессии полученные по http, да еще и содержащие в себе информацию, сгенерированную клиентским js, то вы без безголовых браузеров или аналогов Puppeteer в принципе не сможете подключится.
    Именно по этой причине я написал обо всех трех вариантах, включая и ваш.
  • Сайт в стиле vaporwave?

    lastuniverse
    @lastuniverse
    все таки загуглил, не поленился. Представляю вам vaporwave :)))

    Лабайте в данном стиле, в наркопритонах тема вполне востребована на мой взгляд)))
  • Сайт в стиле vaporwave?

    lastuniverse
    @lastuniverse
    Вы бы все таки дали ссылку на описание стиля vaporwave. Может конечно это настолько известный стиль как Сталин или Петр первый и все о нем знают, но вот лично я первый раз о таком стиле слышу. А гуглить за вас как то лениво уже.
  • Подработка для js разработчика, где искать?

    lastuniverse
    @lastuniverse
    Рональд Макдональд, действительно, зачем вам к такому готовится?
    А вот автору вопроса стоит задуматься))))
  • Как выключить кулер на линуксе?

    lastuniverse
    @lastuniverse
    Ezhyg, таки да, потому и было сказанно про fancontrol, а вот входит он в срстав ОС или нет, это отдельный спор, который я даже начинать не хочу)
  • Как выключить кулер на линуксе?

    lastuniverse
    @lastuniverse
    Ezhyg, и вообще, спор в принципе бессмысленен, потому что вам не удасться провести четкие грани между:
    1. Что является управлением а что нет. Одно и то-же действие можно расматривать и как управляющее воздействие и как его отсутсвие. Все будет зависть от целей, которые я преследую совершая его.
    2.что является составной частью ОС, а что нет. Причина в том, что в этом термине смешиваются как технические так и организационные основания причислять что либо к составу ОС.

    Поэтому давайте остановимся на достигнутом.