Giter VIP home page Giter VIP logo

Comments (8)

enkimute avatar enkimute commented on June 14, 2024

I'll look at adding instanced rendering for static objects (where available) - it should speed things up substantially on modern architectures. I'll also add an option to decide on the tesselation of the circles and spheres as totals do run up quickly there. (spheres are 8192 triangles now, so 500 of them makes 4 million .. )

from ganja.js.

hugohadfield avatar hugohadfield commented on June 14, 2024

Sounds fantastic, thanks Steven!

from ganja.js.

goballooning avatar goballooning commented on June 14, 2024

Hi Hugo, Steven,

@hugohadfield
As you noted you were rending large numbers of planes, would you mind sharing an example of your rendering?

I met a problem in rending sheet elements in CGA. I want them centered at diffrent points.
In my ten-line code toy example, it seems that the sheets/planes are centered along x-axis, not at the specified points.

@enkimute
Is it an rendering issue?
Maybe I shouldn’t represent them as CGA planes?

Thank you very much in advance,
Hongying

from ganja.js.

hugohadfield avatar hugohadfield commented on June 14, 2024

Hi Hongying, planes in the conformal model are inherently infinite, therefore it is pretty arbitrary to define a positional point to draw them in 3d... if you want specific spatial localisation it would probably be better to represent them via triangular facets which ganja also supports!

from ganja.js.

goballooning avatar goballooning commented on June 14, 2024

Thank you, Hugo.
I thought in rendering an infinite plane, the location of the center is a rendering preference of ganja.
So we could not specify the location of a bivector either?

from ganja.js.

hugohadfield avatar hugohadfield commented on June 14, 2024

I'm afraid it isn't a rendering option, perhaps if you dig into the source code you may be able to add one but it would be seperate to the multivector representation of the planes themselves... When you mention bivectors what specific bivectors do you mean? Point pairs are renderable, and due to being a "round" are inherently localisable, I'm not sure if ganja support flat points and some of the other bivector interpretations

from ganja.js.

goballooning avatar goballooning commented on June 14, 2024

I forgot to mention a space in saying "bivector". I mean bivector in general (still this is too vague :( ).

For example, according to "Geometric Algebra for Computer Science", we can obtain "the tangent to a flat or to a round passing through one of its points p" by p \rfloor \hat{X} (p is a point on X, p ^ X = 0) (on page 445, Eq 15.1, Figure 15.6). So I assume specifying a bivector at certain point is not an algebraic problem, and is a rendering issue.

Similarly, there is a figure illustrating different type of vectors (free, normal, line, and tangent vector) on page 452.

from ganja.js.

enkimute avatar enkimute commented on June 14, 2024

Hi ying17zi,

The parametrisation ganja.js uses is different from the one GA-viewer has, and focuses mostly on the representations dictated by the outer product null space (to display element A, show the collection of all points x for which x^A=0). (and you can use it side-by-side to the implicit visualizer). Because of this mindset, it renders for example point-pairs as a pair of points and not as a line (although there is an option for that : {useUnnaturalLineDisplayForPointPairs:true}. For planes, the automatic display is centered, but it is quite easy to render two triangles instead, given four points a,b,c,d , simply do this.graph([[a,b,c],[a,c,d]],{gl:true, conformal:true}).

A rewrite of the renderer is coming up (which will allow mixing of implicit and parametrised representations), I'll make sure to see how much more of the GAViewer functionality I can include (I will also discuss this with Dr Dorst).

from ganja.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.