Subject:
|
Re: on Collision, stop Movement
|
Newsgroups:
|
lugnet.cad
|
Date:
|
Fri, 20 Aug 2004 14:57:00 GMT
|
Viewed:
|
1387 times
|
| |
| |
In lugnet.cad, Andrew Allan wrote:
> Throughout the above process there is lots of margin for the "click" sequence to
> wrongly guess the user's intention thus having the brick placed in the wrong
> place or incorrectly aligned (rotated the wrong way). To minimise this the user
> should therefore have their bricks "best fit" aligned previously.
I was addressing this issue from the user's point of view. The math of the
transformation matrices needed to carry out the user's intent is a detail I do
not wish to cover (it's only coding, right?). I am only trying to define a
minimum set of tools from the user's point of view.
Having 8 male vectors for the studs on a 2x4 is a fine starting point, but what
about a 1x1 brick? If you re-read what I wrote you will see that on a 1x1
brick, you need not only one point and vector on the stud (to indicate the axis
of the cylindrical stud and to indicate a point on at axis for some sort of
mating point), but you also need more information.
At a minimum, you need a vector perpendicular to the first and preferably
parallel to one of the edges on top of the 1x1. In this way, you can easily
attach an un-oriented 1x1 brick to the top of a randomly oriented 2x4 brick and
have the faces of the bricks line up. For the anal-retentive, you would still
need a rotate command (increments of 90 degrees) in order to get the LEGO logos
to line up correctly and keep the faces of the bricks parallel.
Furthermore, you also need to be able to rotate the 1x1 brick to other angles in
order to truly model all of the possibilites you've got in the "real world".
This can happen anytime that you have a 1x1 attaching to any other piece (to the
top or bottom of the 1x1).
My other sections I wrote have to to with extending this functionality to cover
pieces that are less constrained than bricks, like technic axles and cylindrical
antennas. From the user's point of view, other pieces slide along the length of
these "axles". A user won't want pieces "piling up" on a single default "point"
on the axle.
To prevent pieces from hitting each other when placing them on an axle, you
either need several points defined on the axle for the user to pick as the
placement location, or you need to keep track of the pieces attached to the axle
and pick a placement location for the user that doesn't collide with an already
attached piece. I think that several placement points along an axle might be
best (one every 1x brick width), allowing the user more control over the initial
placement of the part. Still, after the inital placement, users may want to
slide the part on the axle to get it into the "perfect" location.
A slider control with an option to key in a value would be great.
Jeff
|
|
Message is in Reply To:
| | Re: on Collision, stop Movement
|
| (...) To clarify, my system consideres each connection point as a vector with a defined point of origin. The vectors are perpendicular to the stud axis. In this way a brick can rotate about the vector (or stud) and still be aligned just like real (...) (20 years ago, 18-Aug-04, to lugnet.cad)
|
23 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|