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.