[Lazarus] SVG Object

Steve Gatenby steveg at nevets.com.au
Tue Jan 18 22:11:40 CET 2022


Thanks Mehmet - I see some study coming my way :)


On 18/1/22 6:47 pm, Mehmet Erol Sanliturk wrote:
>
>
> On Tue, Jan 18, 2022 at 7:22 AM Steve Gatenby via lazarus 
> <lazarus at lists.lazarus-ide.org <mailto:lazarus at lists.lazarus-ide.org>> 
> wrote:
>
>     Thank you Mehmet -
>
>     Tried to follow the math within the svg (inkscape) on my first
>     attempt(s)
>
>     got completely lost (which leads to questioning ones intelligence)
>     on the transforms, scales and differing units :)
>
>     So now fully fudging it by dividing the Svg source Height and
>     Width by a grid format and call each one a quadrant location (x,y).
>
>     Then do the same with the OnClick position of the viewer (so
>     relative quadrants / sizes), and find closest matching (for me)
>     object. All depends on granularity of grid for accuracy.
>
>     Works, but is very dependent on complexity of the svg (not a
>     problem for my use case so far)
>
>
>
> My primary profession was "Elementary School Teacher" . In our 
> profession ,
> determiner factor is not intelligence ( because everyone virtually has 
> sufficient amount of it )
> but  "work with respect to scientific principles ,  continuous efforts 
> , knowledge of the subject" .  Please do not blame yourself with 
> respect to intelligence .
>
> Later on I went to the Middle East Technical University ( Ankara , 
> Turkey ) to be a
> ( Mathematician , Computer Expert , a Good Manager of Money ( I have 
> never been able
> to earn sufficient money to manage other than my monthly salaries )) , 
> and then an
> instructor in another University ( Hacettepe ) . Always my emphasized 
> point to my
> students and nearly every other one around me was the principle :
> "Not intelligence , but sufficient study and work" .
>
>
> My opinion is that you also need sufficient study and work , not 
> intelligence because
> it is easily understandable that you have plenty of it .
>
> You may see the following page and its associated subpages leading you to
> "Computer Graphics" books if you think you need to review or learn 
> subjects about
> it .
>
>
> https://en.wikipedia.org/wiki/Category:Computer_graphics 
> <https://en.wikipedia.org/wiki/Category:Computer_graphics>
> Category:Computer graphics
>
> And also useful  ( more ) pages ...
>
> https://en.wikipedia.org/wiki/Category:Communication_design 
> <https://en.wikipedia.org/wiki/Category:Communication_design>
> Category:Communication design
>
>
> https://en.wikipedia.org/wiki/Category:Information_visualization 
> <https://en.wikipedia.org/wiki/Category:Information_visualization>
> Category:Information visualization
>
>
> https://en.wikipedia.org/wiki/Category:Visualization_(graphic) 
> <https://en.wikipedia.org/wiki/Category:Visualization_(graphic)>
> Category:Visualization (graphic)
>
>       .
>       .
>       .
>
> This means that your problem is not so easy to handle as seen from a 
> distant point .
>
>
>
> With my best wishes for all ,
>
>
> Mehmet Erol Sanliturk
>
>
>
>
>
>
>
>
>     On 18/1/22 9:53 am, Mehmet Erol Sanliturk wrote:
>>
>>
>>     On Tue, Jan 18, 2022 at 2:37 AM Steve Gatenby via lazarus
>>     <lazarus at lists.lazarus-ide.org
>>     <mailto:lazarus at lists.lazarus-ide.org>> wrote:
>>
>>         Thanks Marc - seems I will need to stick with what I have then.
>>
>>         Currently I am pulling all object info from the SVG into an
>>         array and
>>         assigning quadrant positions.
>>
>>         Then do best guess by relative quadrant of mouse click
>>         position - works
>>         fine, but feels sloppy :)
>>
>>
>>
>>     If it is feasible for you , you may do the following :
>>
>>
>>     In an array of a record , define approximate "bounding boxes" of your
>>     SVG graphic ( You may generate  a "bounding box" array conforming
>>     to the given SVG ) .
>>
>>     In the "bounding box" array record , you may define a pointer
>>     showing the SVG object .
>>     When a mouse click is obtained , you may search "bounding box"
>>     array and
>>     if it is related with an element of the SVG , from it you reach
>>     to the SVG element and
>>     do whatever you want to do with it .
>>
>>
>>     https://en.wikipedia.org/wiki/Minimum_bounding_box
>>     <https://en.wikipedia.org/wiki/Minimum_bounding_box>
>>     Minimum bounding box
>>
>>     ( Please see attached pages . )
>>
>>
>>     This idea may be considered as an alternative view which I can
>>     not say that
>>     it is very suitable for you . Only you may decide its usefulness .
>>
>>
>>
>>     Mehmet Erol Sanliturk
>>
>>
>>
>>
>>
>>         On 17/1/22 8:55 pm, Marc Weustink via lazarus wrote:
>>         > I'm afraid there is no easy solution for that. SVGs are
>>         rendered from
>>         > the first element to the last, where ever element (atleast
>>         in theory)
>>         > can be a part of a given pixel. SVG elements do have a
>>         > x,y,width,height but they may also be part of one or more
>>         > transformations.
>>         > To give you an idea, the (browser)app I'm currently working on
>>         > displays several object, where every object has an
>>         origin(x,y) of 0,0
>>         > and they are finally placed by translations.
>>         > The easiest way (if you are in a browser context) is to add
>>         an onclick
>>         > handler to your elements of interest.
>>         >
>>         > Marc
>>         >
>>         >
>>         >
>>         > On 16-1-2022 23:34, Steve Gatenby via lazarus wrote:
>>         >> Not sure if this is the right place to ask about this one -
>>         >>
>>         >> I am using the BCSVGViewer from bgra controls - for SVG
>>         viewing
>>         >> obviously :)
>>         >>
>>         >> Would anybody know if there is a method to retrieve the
>>         object
>>         >> (within the svg) at specified x,y ?
>>         >>
>>         >> or is it possible to use embedded links within the svg ?
>>         >>
>>         >> I am looking to find which object has been clicked on
>>         within the svg
>>         >> to create a 'clickable' map
>>         >>
>>         >> Any suggestions on a better place to post this also
>>         appreciated
>>         >>
>>         >> Regards SteveG
>>         >>
>>         -- 
>>         _______________________________________________
>>         lazarus mailing list
>>         lazarus at lists.lazarus-ide.org
>>         <mailto:lazarus at lists.lazarus-ide.org>
>>         https://lists.lazarus-ide.org/listinfo/lazarus
>>         <https://lists.lazarus-ide.org/listinfo/lazarus>
>>
>     -- 
>     _______________________________________________
>     lazarus mailing list
>     lazarus at lists.lazarus-ide.org <mailto:lazarus at lists.lazarus-ide.org>
>     https://lists.lazarus-ide.org/listinfo/lazarus
>     <https://lists.lazarus-ide.org/listinfo/lazarus>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20220119/5c779e30/attachment-0001.htm>


More information about the lazarus mailing list