> Regarding SVG scaling, I haven’t specifically used D3, but I’m sure it
makes scaling issues easier. However, scaling in SVG is still something
> that requires you to think through the relationships of your objects. It
isn’t magic, and it can’t guess what you have in mind.

Well said. Also, I should have made the point more clearly that you can get
the scaling library from D3 _without_ the rest of D3. No need to buy the
whole pig if you just want a pork chop.



On Wed, Sep 20, 2017 at 11:55 PM, Tom DeMeo via 4D_Tech <
[email protected]> wrote:

> Hi,
>
>
> > SVG is a whole lot easier to manage in JavaScript. If for no other
> reason,
> > you've got access to the D3 libraries.
>
> I would strongly concur with David Adams point that you want to manage SVG
> with javaScript instead of the 4D language. This is an object oriented
> scheme, and its pretty difficult to work with if you don’t have an object
> oriented language to work with it. The D3 libraries or some other library
> are important too, but the language itself is truly important.
>
>
> > * He's also pretty into that freight-car-function style from jQuery
> which I
> > hated on sight. But it does make it easier to set a ton of properties
> > legibly in a compact space. Virtually everything in D3 is set to return
> in
> > a way that supports this syntax so, yeah, be aware of that.
>
>
> This style is really just accepting a single hierarchical object of
> parameters. You can write code that defines attributes in objects in a lot
> of different ways in javaScript. I’d recommend to anyone that they spend
> some time considering a coding style that appeals to them and always try to
> do it the same way. The syntax the library’s examples shows you is not
> mandatory. Its just a javascript object, and as long as you respect the
> underlying architecture of that object, you can use whatever syntax you
> prefer.
>
>
> Regarding SVG scaling, I haven’t specifically used D3, but I’m sure it
> makes scaling issues easier. However, scaling in SVG is still something
> that requires you to think through the relationships of your objects. It
> isn’t magic, and it can’t guess what you have in mind.
>
> Consider the scheme on a 4D form. In 4D, the form itself and the objects
> have sizing parameters (none/move/grow). Splitters can provide additional
> control. Its a nice, simple scheme. However, if you don’t bother to set
> these parameters, you don’t get the scaling you want.
>
> A few years ago, I worked out an HTML layout scheme using a different
> javascript library, Raphael. I wrote a code library so that I could set
> move/grow parameters just like 4D provides in its forms, which I think is a
> pretty smart scheme. I haven’t done anything with it for quite a while, but
> I’m still hosting a demo, so you can check it out:
>
> http://www.svglayout.com/svglayout/index.html <http://www.svglayout.com/
> svglayout/index.html>
>
> When you get there, click on the SL widget in the upper right corner to
> activate the editor. You will see object outlines and handles and can drag
> objects around. You can also double click on an object to see the sizing
> and scaling attribute dialog. The whole site you see is built using an SVG
> based layout scheme. Traditional HTML layout strategies are not used.
>
>
>
> Tom DeMeo
>
>
>
>
>
>
>
> > ------------------------------
> >
> > Message: 5
> > Date: Wed, 20 Sep 2017 09:02:08 +1000
> > From: David Adams <[email protected]>
> > To: 4D iNug Technical <[email protected]>
> > Subject: Re: SVG Scale
> > Message-ID:
> >       <CAPXPcQuGQLLuErPSzmzZwOLy0192z0WcHBS2BisfA6r8Kf3K=A@mail.
> gmail.com>
> > Content-Type: text/plain; charset="UTF-8"
> >
> > SVG is a whole lot easier to manage in JavaScript. If for no other
> reason,
> > you've got access to the D3 libraries. In V4, Mike Bostock wen to a lot
> of
> > effort to break bits out into stand-alone libraries to make reuse easier
> > without the whole D3 environment, and to encourage contributions from
> other
> > people. One of the core features of D3 is the scale:
> >
> > https://github.com/d3/d3/blob/master/API.md#scales-d3-scale
> >
> > And a couple of examples from Mr. Bostock:
> >
> > Quantile, Quantize, Threshold Scales
> > http://bl.ocks.org/syntagmatic/29bccce80df0f253c97e
> >
> > Linear & Ordinal Scales
> > https://bl.ocks.org/pstuffa/c37d059efa1501d33913d63ffe3585db
> >
> > It's super powerful. Like most things D3, you define an object that is
> > implemented using JavaScript's (very nice) closures.So, you end up with
> an
> > object that can perform scaling operations. The object can be passed
> around
> > as a parameter and it can be invoked as such. What's nice about the
> closure
> > in this case is that you can manufacture a whole bunch of different
> scales
> > - you set the values when you build your scaling object. Then you pass
> the
> > pre-defined scale object, as needed. The object caries the scaling
> function
> > internally. It's very tidy and very powerful. There's nothing remotely
> > similar in the 4D language, so there's no way to make a meaningful
> metaphor
> > for this sort of structure.
> >
> > Scales in D3 can be of all sorts of different types, including ordinal,
> > continuous, and sequential. If you need animations, I think that the
> > interpolation features lock in here too. It takes a bit of time to get
> your
> > head around D3 scales, or at least it did for me when I was using D3
> > heavily, but after that, they're a snap. No more hassles.  Super powerful
> > and super easy, once you've got the hang of it.
> >
> > Notes:
> > * Mike Bostock's JavaScript relies heavily on anonymous functions. I
> don't
> > really get it why JS people love them so much. But M. Bostock is way
> > smarter than likely anyone I've met, so I figure roll with it.
> >
> > * He's also pretty into that freight-car-function style from jQuery
> which I
> > hated on sight. But it does make it easier to set a ton of properties
> > legibly in a compact space. Virtually everything in D3 is set to return
> in
> > a way that supports this syntax so, yeah, be aware of that.
> >
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:[email protected]
> **********************************************************************
>
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to