thank you again for explaining to me how FriCAS works internally.

> Our terminalogies differ: I would say that plot is in cartesion coordinates.

okay. i use words 'plot' and 'graph' interchangeably but in this case let's 
make a distinction between them. graph is a visual representation of a function 
or equation. if the function or equation is polar then its graph is also polar. 
and plot is a list of points in Cartesian coordinates, although the points may 
approximate a non-Cartesian graph.

that being so, my phrase should be as follows:

> a user gives a function in polar coordinates and gets a graph in polar 
> coordinates.

though in fact he gets a plot approximating the polar graph. but that's what 
the user wanted because now he is able to see what the polar graph looks like.

> Point is representd using coordinates which one could call cartesian, but I 
> am affraid that this is different meaning of cartesian that you use.

i think now we have one and the same meaning for Cartesian coordinates.

> Coming back to curves given by equations: one needs to inserts transformation 
> in correct place. Finding correct place probably is not very difficult, but 
> is not entirely obvious either.

there's only one place where transformation occurs. like you said:

> ... 'makeObject' is doing transformation from polar to cartesion coordinates.

>

> As I wrote, drawing code tries to ensure that point lists are good 
> approximation to the curve. That involves some arithmetic which in case of 
> curves given by equations it mixed with equation solving.

somehow makeObject understands that graph of the Cartesian equation x=constant 
is a straight line and it only takes two points to draw a plot:

-> pointLists(makeObject(x=1, x, y, range==[-3..3,-3..3]))

> [[[1.0, 3.0], [1.0, - 3.0]]]

for the polar equation theta=constant the graph is also a straight line and 
instead of ignoring the coordinates option:

-> pointLists(makeObject(t=1, t, r, range==[-3..3,-3..3], coordinates==polar))

> [[[1.0, 3.0], [1.0, - 3.0]]]

because polar(pt) won't work here, makeObject should return this:

> [[[3.0, 1.9262778478], [-3.0, -1.9262778478]]]

and that requires dealing with non-Cartesian polynomial equations. i don't know 
how it works for Cartesian ones, so have no idea if there would be any 
differences.

by the way, why is a linear function plotted as if its slope is always 1? try 
this for example:

-> draw(10*x, x = -3..3)

or -1 if the slope is negative.

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/dcetRhmQBBVbExPYq_u_iS43Rv5-dKG-IGRwZPSSrfUubwQvFCqRReLQk4QRlcsw2r_fPmE9vTud6c0DyGnwmnqeUQ0zO3_uAFWgNPBHHho%3D%40proton.me.

Reply via email to