BG Development


  Reply to this topicStart new topicStart Poll

> Динамично оразмеряване на canvas
thrawn
Публикувано на: 03-02-2024, 11:56
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3615
Регистриран на: 17.01.17



Някой може ли дададе съвет за следната ситуация.

Имам изображение (карта) която се чертае динамично в html canvas като се използват няколко слоя нарязани с "cut paths". Крайния резултат е картата с различни зони, оцветени в различен цвят (според слоя). Във всеки слой може да има произволен брой зони.
При клик върху (в) активна зона се извежда попъп с детайлна информация за зоната.

Координатите използвани за чертане на пътищата използвани за нарязването и съответно за определяне на избраната зона при клик се получават асинхронно.

До тук, всичко е ОК. Проблемът ми е, че това цялото трябва да са мащабира според резолюцията на клиетския дисплей. Та се чудя как да подходя.

Да ползвам media query-та и да реализирам различни имплементации за различните дисплей (така ще имам рамки около картата) или да изчислявам scale factor с който да модифицирам всички координати (тук няма да има рамки, но ще се губи тичността, заради закръгляванр на изчислените координати).
PMEmail Poster
Top
thrawn
Публикувано на: 03-02-2024, 12:43
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3615
Регистриран на: 17.01.17



За мащабирането намерих що годе тривиално решение. Чертая в паметта, като използвам фиксираните размери в които получавам пътищата и после копирам крайното изображение на дисплея, където вече няма проблем с мащабирането.

Остава само "транслирането" на координатите при клик
PMEmail Poster
Top
relax4o
Публикувано на: 03-02-2024, 14:32
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2797
Регистриран на: 04.04.07



При клик какво използваш да вземеш координатите? Ако ги взимаш базирани на канваса и имаш логиката, която изчислява дали си в определена зона, би трябвало да нямаш проблем.

Преди съм правил кръстословица (намиране на думи) в канвас и при клик трябваше да ги highlight-вам, но там решението е доста по-тривиално, защото е базов 2д масив и изчисленията не са толкова сложни.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
thrawn
Публикувано на: 03-02-2024, 15:02
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3615
Регистриран на: 17.01.17



От canvas-а са. Директно се проверяват за съвпадение с координатите ползвани за рязане на изображенията по отделните слоеве.
PMEmail Poster
Top
relax4o
Публикувано на: 03-02-2024, 15:40
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2797
Регистриран на: 04.04.07



И получаваш несъответствия в кликовете? Дори и да се скалира картата, когато координатите са вътрешни на канваса и имаш координатите ползвани за рязане, то промените в размера не би трябвало да афектират нищо.

Можеш ли да дадеш примерен код?


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
thrawn
Публикувано на: 03-02-2024, 16:10
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3615
Регистриран на: 17.01.17



Тя системата работи в мащаб 1:1 и ще трябва да я скалирам. Затова пуснах темата, ма после ме споходи идеята как да скалирам изображението.
Иначе, в понеделник ще го захващам това. За сега обмислям как да подходя.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0