.com.unity Forums
  The Official e-Store of Shrapnel Games

This Month's Specials

Air Command 3.0- Save $12.00
War Plan Pacific- Save $7.00

   







Go Back   .com.unity Forums > Shrapnel Community > Space Empires: IV & V

Reply
 
Thread Tools Display Modes
  #1  
Old November 27th, 2004, 12:56 AM
Slick's Avatar

Slick Slick is offline
Brigadier General
 
Join Date: Apr 2002
Location: Kailua, Hawaii
Posts: 1,860
Thanks: 0
Thanked 1 Time in 1 Post
Slick is on a distinguished road
Default Re: OT: 2D/3D math

here's the long story (note that this assumes a knowledge of algebra):

you start with a line and a point. find the slope of the line and call it "m".

the slope of all lines perpendicular to that line now have a slope of -1/m.

next you find the equation of the line going through the point with the slope of -1/m. Here is that equation in the "point-slope" form: (y-y1) = (-1/m) (x-x1)

now you solve the equations for both lines simultaneously to get the point where the perpendicular line meets the original line. There are various algebraic methods for this (too cumbersome for this forum's text editor). you will end up with the solution (x2, y2) which is the intersection of the original line and the perpendicular line going through the point (x1, y1). it also is the closest point on the original line to (x1, y1).

now you use the distance formula to find the distance beween (x1, y1) and (x2, y2).

Distance = square root ((x2-x1)^2 + (y2-y1)^2)

and there you go. I had taken out all the intermediate stuff in the original solution. All it takes is putting the original line into the form: Ax + By + C = 0 then using the formula I gave. This is one of the standard algebraic forms for a line.

=========================================

As far as doing this on a computer, just step through the procedure I laid out here. If you only start with 2 points instead of an equation for the line that joins them, you can easily figure out the equation:

given 2 points: (x3, y3) and (x4, y4)

the slope "m" of the line that joins them is: m = (y4-y3) / (x4-x3)

the equation of the line can be written using either of the original points. I'll use the first one:

(y-y3) = m (x-x3)

using some algebra, you can transform this into:

mx - y + (y3-mx3) = 0

therefore
A = m = (y4-y3) / (x4-x3)
B = -1
C = (y3-mx3) = (y3-[(y4-y3)/(x4-x3)]x3)


Slick.
__________________
Slick.
Reply With Quote
  #2  
Old November 27th, 2004, 02:07 AM
narf poit chez BOOM's Avatar

narf poit chez BOOM narf poit chez BOOM is offline
Shrapnel Fanatic
 
Join Date: Mar 2003
Location: CHEESE!
Posts: 10,009
Thanks: 0
Thanked 7 Times in 1 Post
narf poit chez BOOM is on a distinguished road
Default Re: OT: 2D/3D math

Thanks.
__________________
If I only could remember half the things I'd forgot, that would be a lot of stuff, I think - I don't know; I forgot!
A* E* Se! Gd! $-- C-^- Ai** M-- S? Ss---- RA Pw? Fq Bb++@ Tcp? L++++
Some of my webcomics. I've got 400+ webcomics at Last count, some dead.
Sig updated to remove non-working links.
Reply With Quote
  #3  
Old November 27th, 2004, 02:16 PM
TurinTurambar's Avatar

TurinTurambar TurinTurambar is offline
Captain
 
Join Date: Nov 2003
Location: At work or sleeping
Posts: 821
Thanks: 1
Thanked 0 Times in 0 Posts
TurinTurambar is on a distinguished road
Default Re: OT: 2D/3D math

uhg.... horrible nightmares of years past...
__________________
Aa Turam Empire

Geekdom is eternal... you will be assimilated... resistance is futile.

A+ Se GdY S++ Fr- C* Cs* Sf- Ai++ Au>M! M- Mp! S@ Ss+ R! Pw+ Fq++ Nd? Rp++ G++ Mm++ Bb-- L-- Tcp

'We, the weird, chasing the pointless, for no reason at all, have been finding out things that have no effect on anything important for at least a couple days and are now qualified to chase our tails to the merriment of all watching.'-Narf et al

"Of course, you don't want to be going about handing out immortality willy-nilly, that just wouldn't be responsible." -O'Shea
Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 07:13 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.