Force creation of point instead of vector

SharkD shared this question 1 year ago
Answered

When I paste the following into the input bar, a vector is automatically created.

point02_b = point02_a - ((x(Corner(text02_a, 2)) - x(point02_a)) / 2, (y(point02_a) - y(Corner(text02_a, 1))) / 2)

How do I force the program to generate a new point instead? Thanks.

Best Answer
photo

Create the object with Point02_b = .....

after this rename Point02_b to point02_b

Alternatively:

point02_b = Point(Vector(<expression for a point>), 1)

Comments (9)

photo
1

Create the object with Point02_b = .....

after this rename Point02_b to point02_b

Alternatively:

point02_b = Point(Vector(<expression for a point>), 1)

photo
1

OK...but this seems a little excessive: has no one proposed a more efficient syntax?

photo
1

Actually, perhaps I misunderstand what <expression for a point> is supposed to be, but this didn't work for me (in 3D mode, GC6, MacOS): Point(Vector(1/sqrt(2),1/sqrt(2),0),1) still shows a vector, not a point.

photo
1

I don't (personally) like how spelling determines the type of object. But in academic environment maybe this is the custom.

photo
1

I don't agree. On the contrary it's very handsome. Of course you can create objects and points starting with Point( ) or Vector() commands, but allowing that just typing U= (2, 0) or u= (2, 0) without further use of commands allows you to make a difference between points and vectors is very practical if you use both of them frequently. And if eventually, you wish a point to bare a name in small letters, you still have the possibility to name it likewise using e.g. a = Point(xAxis) or rename it afterwards, as Rami already said.

Furhtermore it's common in math (not just in GeoGebra) to use capital letters for points and small letters for vector. The consequent use of capital and small letters makes it easier to 'read' constructions. But as I said, you can make your own choices typing a = Point( ) or A = Vector( )

chris

photo
1

Yes, that is meant by there being an existing "custom". I would rather the program always default to point instead of vector, regardless of capitalization. But I have to remember this program is meant for teachers and students, not others.

photo
photo
1

I ended up doing this:

point02_b = Point(point02_a, -1 ((x(Corner(text02_a, 2)) - x(point02_a)) / 2, (y(point02_a) - y(Corner(text02_a, 1))) / 2))

Thanks for the help!

photo
1

This was not your question but:

if point02_b must be the midpoint of text02_a then the following command is more short:

point02_b = Midpoint(Corner(text02_a, 1), Corner(text02_a, 3))

photo
1

`point02_a` is the control point. `text02_a` must be attached to this point. Finding the midpoint of `text02_a` is interesting but not useful to me.

photo
© 2019 International GeoGebra Institute