You are not logged in.
Also, at this point, this just translates the locations of the points. They need to be connected with lines. This is easy as pi, mathematicly, but program-wise, finding a way to create new objects, and to quickly and efficiently connect them with lines to create a wire frame, and fill in the frames with color. Also programing each object which is a collection of multiple points connected with lines, to be a distinct object (for programming reasons) raises the complexity a bit.
There are also some things that must be implemented like "hiding" and object when it passes behind an opaque surface, also at least a primitive shading engine MUST be written, otherwise a red box could end up looking like a stop sign.
One thing at a time. But you can make a game with see though wire frame images, if you like.
Thats the general idea but I immediately found I have a lot to learn about 3d linear algebra. Theres a book called "mathematics for 3d game programmers" which I intend to buy as soon as I finish calculus. I'll post more as I learn more. :-)
Btw, this engine still seems to have a few appearant bugs, I'm trying to work them out. So don't get too excited yet.
Ok I'm tripping again. This happend in trig, a small lack of understanding of a concept occurs and it snowballs as I continue untill I don't know what the devil the book is talking about, and I can no longer move forward. I'm forced to go back, and review and think about for a few days. Darn.
Ok, it seems the problem solving patterns are relatively straightforward but I might as well be learning card tricks if I don't understand what I'm doing. I'm having trouble understanding all this dy dx buisiness. I think i'm having more trouble understanding what the notations stand for.
For I a while I thought dy/dx was just a notation for derivative, but it seems this fraction can be manipulted by multiplying by dx or dividing by dy. Now when we find the differential dy we essentially find the value of the rise, and the rise alone. (rather then the rise over the run) we find this by multiplying the slope (which is the rise over the run) by the run, to cancel out the run and leave the rise. But what is the run? What are we multiplying by? It seems the run could be anything! This is difficult because the slope of the function depends entirely on which point on the line we are talking about, and is dependant on that value of x. So when we multiply by dx or divide by dy, it seems we are multiplying or diving by undefined variables. Very confusing.
Ok look at this problem:
u = (x^2)y find du
Ok I really don't know what they mean by "du" distance u? From what?
I know how to solve the problem but I really have no idea what I'm doing. :-(
Which is greater, infinity or 2infinity?
I like to think of infinity not as an infinitly large number but as a number that increases continuously. If you think of the two infinity terms as two trains traveling on a number line really fast, starting from the same point, their distance from the origin would always remain equal. But no matter how far the trains go, twice the distance of one train will be greater then the distance of the other train.
If you were to write the fraction:
2infinity/infinity
would infinity cancel out? Creepy!
Does infinity = infinity?
If so, then the additive and multiplicitve property of equality should apply and we can multiply or divide an equation by infinity. Add or subtract infinity from both sides. Also we should be able to multiply or divide any fraction by infinity over infinity without changing its value.
And how about division by zero? Is it infintiy? As a denominater gets smaller, the value of the fraction gets larger, but does zero work the same way?
In grade school arithmatic, we divide by placing the dividend in a box and the diviser to the right of it, for instace 5/2 the first step is to think, "how many times will 2 fit into 5? 2.5 times. If we use the same method for division by zero, 3/0, whats the most amount of times 0 can fit into 3? An infinite number of times! By this method infinity seems like the answer.
If we think in terms of fractions, 1/2, 1/3, 5. 1/2 is one half of the whole, 1/3 is one third of the whole, 5 is 5 wholes, 1/0 is one zeroith of the whole, or one NONE of the whole. One none of the whole should be zero!
If we use algebra 5 * 0 = 0. Then does we could say, 0 = 0/5. So division by zero could equal zero.
We could also rearrange it to find, 0/0 = 5. We could also use 7, 9 or any number in place of 5 and find that 0/0 equals any number and every number!
lol!
I just completed lesson 30 in my 158 lesson calculus book. I haven't learned too much new stuff yet but from what I've seen so far, all I can say is this.
wigout()
{
Oh my FREAKIN GOSH! Calculus ROXXORS t3h big onez!111;
return sanity;
}
The reasoning and logic is absolutely astounding!
Anyways lets get down to buisiness. I just learned about finding the differential dy. Which you find by taking the derivate of the function and multiplying it by dx.
But a few minutes later, a problem simply tells me to differentiate. Huh?
At first I assumed the meant the same as finding the differantial dy, but it turned out the answer was simply the derivitive of the function. Huh? Does differentiate simply mean "find the derivitive"?
Well some of this may be above my level as I'm having a bit of trouble understanding. I'll reread it a few times to see if it sinks in. I wasn't necessarily interested in velociy, (Though I might be able to use that) I was more interested in rotating by a specified degree about a specified axis. What I can't figure out is what is that angle defined from and how do we specify which direction we want to rotate it. If you want to rotate 15 degrees, then 15 degrees in want direction? Depending on the axis and the location of the point that may end up rotating in the opposite direction you had desired.
Btw, one thing I did note that if a point is rotating about an axis, the point will always remain the distances from two points on the axis, even if those distances are not equal to eachother, the won't change.
Suppose we want to rotate a point (who's coordinates are x,y, and z) about the axis defined by the line connecting point1 and point2 (who's coordinates will be x1, y1, z1, x2, y2, z2 respectively)
We know the 3d distance from point1 and the point will not change, and that the 3d distance from point2 and the point will not change.
So distance1 = sqrt ((x1 - x)^2 + (y1 - y)^2 + (z1 - z)^2)
and distance2 = sqrt ((x2 - x)^2 + (y2-y)^2 + (z2 - z)^2)
Where distance1 and distance2 are the 3d distances from the point, to point1 and point2 respectively, before the rotation is made and the points coordinates are known.
That gives us two equations about the points. So I suppose if we know at least one of the coordinates of the point we should be able to calculate the remaining two coordinates to define its new location. I suppose this one coordinate must somehow be determined by the desired angle of rotation.
"the method taught for this kind of thing was rotating the entire scene and leave the camera unchanged, but that's horribly inefficient for a scene with a high poly count..."
HAH! Thats exactly what I did with my 3d engine. I thought it was a some what primitive and ineligant method but it seems to work. Also I'm sure the 3d rotation only effects what I call the virtual coordinates, (temporary copies of the real coordinates that are translated) so the objects real coordinates are unchanged so the world does not revolve around you! ![]()
I heard in 3d engines they look for matrices that either never change or change only once in a while and the program is designed to skip reevaluatlion when not necessary and use the result of the previous calculation.
Suppose you had two 3d points, "pointone", "pointwo", and a point "thepoint", what would be the best way to rotate "thepoint"around the line connecting point one and pointtwo?
I really need to get some books on 3d linear algebra. :-/
Hmmmm to tell you the truth I'm not 100% sure there is something wrong. I just color coded the points and things seem to look better, perhaps I was just confusing the points of the front of the box and the back of the box.
But I doubt thats it. Otherwise 3d images would be pretty demanding about where you sit and they aren't really.
The image looks fine with zero rotation. There must be some flaw with the rotation engine.
Anyway, like I said, looking at a screen is differant in many ways from looking through a window. For instance, in a window, as you look though differant area's of the glass, your angle of view is changing. On a screen, your angle of view stays the same no matter where you look. Also when you look att a tv from a reasonably mild angle, your mind tends to correct it as if you were looking at it straight on. Which is why we can watch a movie without being normal to the screen, and it won't look messed up. So this is another differance. How your mind percieves the illusion of 3d on a 2d plane is much differant then where you see objects through a sheet of glass. So the mind may be trying to correct the image on a 2d plane and is actually distorting it. I often find that wierd distortions onscreen tend to not look so weird if I move my face closer to the screen.
Perhaps, my 60 degree viewing cone is simply too wide and requires to to be too close to the screen. If that be the case maybe I just need to shrink it a bit.
Well that might not be a flaw, I just rechecked my program and the XZ rotation is done first. Would it still occur? Seems like it wouldn't but these things tend to be unpredictable.

Ok heres a review of how the rotation and projection works. In this example we will only be finding the y coordinate of the point. Finding the x coordinate is the same only we work on the XZ plane rather then the YZ plane.
A. The location of the box on the YZ plane, Y being verticle, and Z horizontal.
B. The direct distance to each point from the viewers location (on the YZ plane) is measured. Using the distance formula sqrt((view.z - z)^2 + (view.y - y)^2) then the angle to the object on the YZ plane is measured in relation to the viewer using my polarangle function. We now have a distance and an angle of each point so we now know their polarform.
C. To rotate our viewpoint, we add the negative of the desired view rotation on the YZ plane to the angle of each points polar form. If a point was at sqrt (104) @ 45 degree's, and we wished to rotate our view 15 degree's down, we subtract 15 from the polarform. sqrt(104) @ 30 degrees. This will rotate every point down by 15 degree's as if we had rotated our viewpoint UP by 15 degrees. We then convert back to rectangular form for the new temporary coordinates of the object. This should work because when you rotate your view, the DIRECT distance from you to every point does not change, but the angle at which you see them does.
D. Now we use the simple projection scaler to scale every point down to the picture plane which represents the computer screen. These distances give us the y coordinates of where the point is to be displayed on the screen.
The same process is done on the XY plane to find the x coordinate.
Whats important is that both the horizontal and verticle rotations must be done BEFORE the projection is made. Because both rotations effect the z distance to the viewer, even though the DIRECT distance to the point is unchanging when you rotate your view.
It all seems correct, so why are some funny shapes showing up with certain angles of rotation and certain distances? I don't know, but I intend to find out. Is it a bug in my program? Or is the mathematical formula flawed in some way? One more possibility exists, viewing an object on a screen is slightly differant then looking at the world through a sheet of glass. I'll get into that in a second.
One thing I did to test the rotation engine, I used the 3d distance formula sqrt(x1-x2)^2 + (y1 - y2)^2 + (z1 - z2)^2) and checked the direct distance from the viewer to a point and had the value constantly being reevaluated and printed to the screen. As I rotated my view the directed distance did not change, as I moved the viewers location the distance changed. Everything working as it should there.
Ok while typing this I just found a new flaw. The object is first rotated on the YZplane and then on the XZplane. This works but they are done one at a time. After one rotation is complete, the next rotation is done horizontally, rotating the points as they were after the verticle rotation. This is like (for instance) looking downward, and then rotating your eyes to the left. If you rotate your eyes left after you rotated them down, then your eyes will begin to look towards your left and upwards, thanks to the vertical rotation. This is hard to explain in words so maybe I'll draw a picture. Anyway, this would result in slight rotations on the XY plane, as if the ground wasn't flat. With that in mind, some of the wierd shapes may actually make sense. I'll have to think for a bit on how to correct this.
Here we are:

This is not an actual copy of an image produced by my program, (couldn't figure out a way to do that) just did my best to make a sketch. This is the kind of thing that tends to occur at certain angles. The box looks more like it is shapped like the black outline I drew on the right. The two top front corners appear to be leaning forward disproportionatly as if the front of the box is sloped. Other times the box looks like a paralellegram, and othertimes, it looks just fine.
So the investigation is under way.
Well I found out Game Maker actually has built in trigonometric functions and you can define your own scripts which work pretty much like functions. Game maker's language is pretty primitive as you can't define your own member data, there is only one type of object with preset member data. It has most of what you need but sometimes not being able to define your own can be a real pain. Also you can't pass objects into functions (or scripts) to acess their member data. Each new step has presented new difficulties and I've been forced to copy and recopy large amounts of the same code into each object. Its been a pain in the neck but its working.
Trying to work out some glitches now. The image is completely flawless with zero rotation. You can move around and the dots behave perfectly given their distance and location in relation to the viewer. But rotation seems to be iffy. At times, the rotation appears to be working fine. Other times, the objects get twisted into obviously wrong positions. I set restraints so the object is only visible if its with a 60 degree viewing cone. (if the view is too wide angled barelling is inevitable) Anyway I'm going over my design looking for possible errors, and checking the program for bugs.
Gimme a sec I need to draw up some pictures.
I often get confused trying to figure out absolute inequalities and I'm trying to develop some steps to solve them.
|2x - 3| < 5
I guess this means the value of the expression 2x - 3 is less then 5 and greater then -5. So in theory we can say:
2x - 3 < 5 and 2x -3 > -5
In the first inequality we removed the abosulte value symbols, and the second we did the same, reversed the greater then symbol and reversed the sign of the expression on the right. Now we can solve for x in both inequalities and I think that would give is the domain of x.
If we have the opposite:
|2x - 3| > 5
this should also mean that either 2x -3 is greater then 5, or less then -5.
2x - 3 > 5 and 2x - 3 < -5
Again we wrote a second inequality, reversed the inequality symbol, and the sign of the expression on the right.
My mathbook often gives absolute value inequalites to solve but like I said I find then very confusing so I'm trying to develop a system.
Does my reasoning seem correct?
Now I'm wondering if we could use this to solve equations with two or more absolute value terms.
|2x + 3| + |3x + 5| < 6
we could try eliminating one at a time:
|2x + 3| < 6 - | 3X + 5|
2x + 3 < 6 - |3x + 5| and 2x + 3 > -6 + |3x + 5|
Now again isolate the absolute value term:
|3x + 5| < -2x + 3 and |3x + 5| < 2x + 9
Oh boy.... here come four inequalities:
3x + 5 < -2x + 3 and 3x + 5 > 2x - 3
and
3x + 5 < 2x + 9 and 3x + 5 > -2x - 9
Hope I didn't mess up on any of those. :-/
Solved x < -0.4 and x > -8 and x < 4 and x > -2.8
This restricts us to values of x between -0.4 and -2.8.
-0.4 < x < -2.8.
If you input -0.4 or -2.8 into the original expression, |2x + 3| + |3x +5| they both produce 6. Anywhere between them is less then 6 so the solution appears to be true and the process I suppose is also true.
I worked this out as I was typing so there may be some errors in my reasoning or calculations as I haven't checked it theroughly.
Two possibilities exist at this point. Either I just invented "Absolute Value Inequality Algebra" or Avia. Or I just reinvented absolute value inequality algebra. I assume its either the later or I'm the only person on the planet not smart enough to do it in my head.
I go through this same episode every day. lol.
Read up one whats been tried so far http://www.d.kth.se/~dicander/lost.html
No sequence has been found yet. Hmmm...matrices maybe?
The myserious sequence in the tv show "LOST". Any idea what they could mean?
The author of my mathbook, like many great mathematiciains he was a genius, and he's dead. :-/
Well actually Saxon wasn't a 100% mathematician, I think he was an engineer and computer scientist, and a very good teacher. He wrote mathbooks for grades 1 though 12, including algebra 1, 2, trig and calculus. He also wrote books on other subjects like phonics. (yuck!) Saxon's philosophy was that math is not difficult, math is differant, and that people often call things that are unfamiliar to them, difficult, and things that are familiar easy. Time and practice is required for things that are differant to become things that are familiar and thus, easy. This philosophy is the basis for saxons teaching. Where some mathbooks would try to teach all the aspects of a topic in one lesson, saxon presents each topic little by little. Begining with the simplelest problems of that type and saving the more advanced problems for a later lesson. Each short lesson has 30 practice problems to do before moving on. This ensures you become familiar with each concept making comprehension of the more advanced problems easy since you have a solid foundation on the previous topics. "An Incremental Development" is written under the title of each saxon book. I taught myself algebra 1, 2 trigonometry with these books and am now working on calculus. Very good books, I highly reccomend them to anyone.
I see. Well my idiot mathbook never taught me the concept of a second differance. Perhaps there was a revised edition of a previous book in the series that I didn't have. If Saxon were still alive this would not have happened. >:-(
every term in this sequence appears to be the sum of 1 and a term in another sequnce.
begining my calculus book, some problem types were taught in previous books in the series, so if you don't remember how to do it, you go back and review. Well I have all the previous books but I can't find any problems of this type:
Find the next term in a sequence who's first six terms are 1,1,2,4,7,11.
At first I thought it was an arithmatic sequance, but 1 + d = 1, 1 + 2d = 2, 1 + 3d = 4 etc all yield differant values of d so there is no common differance.
So I thought perhaps it was a geometric progression. If that were the case, then dividing any term by the previous term would give us the common ratio. But again, it doesn't work. 1/1 = 1, 2/1 = 2, etc.
After some guess work, I noticed the pattern 1, (1 + 0), (1 + 1), (1 + 3), (1 + 6), (1 + 10)
if you look at the numbers 0 ,1, 3, 6, 10.
1 is one greater then 0. 3 is two greater then 1. 6 is three greater then 3. 10 is four greater then 6. The answer to the problem is consistant with this sequence, but I've never seen a sequence like this. It does not appear to be arithmatic as it does not have a common differance, and it does not appear to be geometric as there is no common ratio.
So what is it and how would I solve it without guessing?