Tarquin/Trig Rant
It's funny that no-one ever says "I want to code UnrealScript, but I don't know how to read yet".
So why do people want to work with geometry in UnrealScript and in UnrealEd before they understand basic trigonometry?
It's quite possible to work with UnrealScript and not get involved with vectors and trig.
I guess what I'm trying to say is that it bugs me when people want to understand vectors, rotators, and angles, but still say things like "it's got something to do with that horrible trig stuff I didn't pay any attention to at school, right?".
Well, it is that trig stuff. Go away and learn it. Pay more attention in maths lessons, or get books on it. It's not rocket science (well, okay, it is used for rocket science).
Okay, just to be nice: Trigonometry
Mychaeel: Unfortunately, "I don't know how to read yet" apparently does apply to a couple of programming newbies as well. Those are the people that program by trial-and-error (copy-paste, maybe randomly replace a couple of symbols, then try to recompile), get an error message and post something along the lines of "I get the error message 'type mismatch in parameter 1', what does it mean?" and never bother to read the error message, let alone any documentation that could tell them how to fix it. 126654 is a sad example of this. (Apart from the fact that the thread's initiator has, by now, posted five different threads on the same subject in the Coding forum, and has ignored my request to stick to one thread with a single subject and use [code]...[/code]
for readability.)
Dante: Yeap, I'm Bytekeeper in this thread The problem with Uscript is, that most people think it's very easy, because it's a script-language. So they start out reading a tutorial instead of reading the language reference. If you understand the language, and you got the class-tree, he's problem is very easy. But as he has no idea of what he's doing, he assumes imho to have a pre-basic scriptlanguage with hardcoded spawn() and no objects or so ( just guessing myself here too ) I mean trial-and-error is an approach we all needed ( Not c&p but you always learn from errors ) But you're right, copy&paste behaviour with exchanging one or two lines by copy&paste from another script is something those people have in common. And what really annoys me that they aware of that we don't need to help them, do they think it's our job or what ? I guess after UT2k3 comes out, I need to c&p "RTFM" very often.
Mychaeel: Yes, you're right about trial-and-error, of course. I actually prefer it a lot if people just try something out before they ask (same applies to myself). What I actually mean is this particular sort of trial-and-error where the guesses are random ones, not more or less educated ones. – By the way, I personally found posting Unreal Wiki links a pretty good substitute for RTFM. It's more helpful and gets the basic idea of RTFM across just as well.
Dante: You're right, of course But I think even with a pointer to Unreal Wiki, they will continue. It's the lazyness of reading manuals. They don't even recognize that they would be faster than waiting for a reply on the forum...
capt. k.: It's not possible that a guy who acts like a 14 year old, has a command of written English like a 14 year old, and doesn't know anything more than a 14 year old could possibly *be* 14 years old, is it?
Mychaeel: Your point being?
Tarquin: I learnt trig at school starting at 13. I have nothing against young er coders. If you want to do stuff that hasn't yet been taught at school, start with books, or better still, convince your school to bump you up a year.
capt. k.: My point being that people who say they don't know trig are probably saying that because they don't know trig. I'm not sure what it's like out in everyone else's part of the world, but up my way trig isn't touched till around 10th grade, and vectors aren't covered in anything short of college-level courses. Maybe Tarquin's just gifted, I dunno.
Not trying to be contentious here – and I don't disagree, people should learn to RTFM – but I don't think things like ignorance are usually anyone's fault.
Tarquin: I will afree that my rant is ill-thought-out and badly-formed. It's not a patch on Mych's rants which are sensible and clearly-laid out. What I'm saying is:
- don't know trig and don't want to do trig? fine.
- don't know trig but want to do things that require it, and therefore want to learn it? fine.
- don't know trig but want to do things that require it, but still don't want to learn it?
Mychaeel: Even as a 14-year-old, I knew (or at least I think I knew) that random guesses are the most inefficient way to get something done, and that the key to understanding other people is listening to them. (I think around that age I started to learn assembler by reading a book about it.) The guy in this thread I linked to seems just not to be reading what other people write (or what the compiler tells him), and doesn't seem to be willing to follow people's pointers for further reading. I see a distinct difference between ignorance and lack of knowledge.
capt. k.: Nah. Ignorance is ignorance. The distinction is what one choses to do about it.
Mychaeel: Maybe it's my German background. Unkenntnis (lack of knowledge) states a mere fact, Ignoranz (ignorance, I'd translate) implies a degree of bad will. In any case, "what one choses to do about it" is exactly the difference I'm seeing between the two.
Dirk Fist: Actually the way most text books treat trigonometry, vectors, and matrices is in my opinion needlessly complicated.
Foxpaw: I'd agree with that, to some extent. I believe that those concepts are expressed the way they are so that they more easily translate to other applications in more advanced math courses though.
MythOpus: Well, sadly, I'm only in grade 9 so I'm stuck with boring algebra. No trignometry for me *sigh*
Dirk Fist: Probably, but what really happens is that the student gives up on math totally. And many of the people that do make the effort never really understand what they are doing. (In effect they collect of bunch of recipes that work but they don't understand WHY)
Dirk Fist: Maybe a trig-for-UT page ? Showing all the wonderful simplifications Epic has provided ? Never use PI again! (except as a food )
Tarquin: we have one.... somewhere ... UnrealScript Vector Maths
Mortal Monkey: I learned my trig thanks to UScript & Wiki. The maths they teach at school here almost appears to be intentionally boring.
Foxpaw: I do have to agree somewhat about people not really understanding what they're learning. A perfect example in my opinion is complex numbers. -1 doesn't have a square root, by definition. Presumably, there's "complex numbers" but I've yet to meet someone who can offer a plausable explanation on what a complex number is. By that token, I don't think anyone really understands what they are (well I do, a figment of your imagination ) but people have been taking them on faith since their inception. (Granted, they do wonders for some mathematical problems, but that doesn't mean anyone understands them.) A thug doesn't need to understand what makes a blade cut things in order to stab someone.
Tarquin: Actually I understand them -1 has a square root once you define one. Complex numbers just fall out from that choice.
Foxpaw: So, in order for it to work, you have to assign an arbitrary value? That sounds like Enron mathematics to me.
Tarquin: No... in the real number system, -1 has no root. So we say "suppose it HAS a root OUTSIDE the system". let's CALL that root i. "i" is not an "arbitrary value", it is a label.
Foxpaw: Well, I suppose so. But it's still just made up, right? Since there's no real value that it could ever represent.
Tarquin: Your question is not phrased in a way I can understand. Do you mean "real" as in "real number" or "reality"? i is not a "real number", but it's a "real" number. imaginary numbers are no more fictitious that negatives, for example.
Foxpaw: Oh. Well, what I meant was real as in reality. As far as I can see, imaginary numbers aren't really numbers, just a notation that represents some equation or condition. I don't see any way that they could be used directly for any sort of application without being converted back to the real number system first.
Tarquin: That could be said of all numbers. Think of what "-1" means. The problem seems to be that you're not really sure what you mean, and neither am I. There is nothing 'made up' about i, at least no more than any other number.
Foxpaw: Well, a real number like -1 can be manipulated. Though in theory an imaginary number can be manipulated too, the result will be undefined, so really an imaginary number is just representing something for the sake of representing it in a different form, since once it's there you can't do anything with it.
Tarquin: What do you mean by 'manipulated'? And what do you mean by 'undefined'? You're not making any sense. Are you trolling?
Foxpaw: No, I'm not trolling, I'm just saying, as per the point that was made by Dirk Fist, that I think complex numbers are an excessively overcomplicated method that violate existing rules of mathematics, and as such I don't think that they can be understood properly. Certainately, a person could use them for stuff, but I don't think that makes them a valid mathematical construct.
Tarquin: ok. But 1) they are not complicated b) they don't violate any rules 3) they can be understoof properly 4) there really isn't any such thing as an invalid mathematical construct. I think we'd better leave this discussion at that, because I think you are confusing mathematics with arithmetic.
Dirk Fist:
a=b ; pick ANY two equal numbers a*a=a*b ; multiply both sides by a a*a-b*b=a*b-b*b ; subtract b squared from both sides (a+b)(a-b)=b(a-b) ; factor both sides a+b =b ; remove common factor b+b =b ; replace a with b 2 =1 ; what happens if b==1
there is no such thing as an invalid mathematical construct.
DeepQantas: (a-b) equals zero. Hasn't anyone told you what happens when you divide something with zero?
Dirk Fist: I think that was my point ;D, division by zero is inherently undefined you can't fix it by saying they're is some magic number K such that K=1/0
Now can you tell me the flaw in Godel's theory ? (Hint : try his reasoning on the set of 3 digit numbers)
DeepQantas: I would, but I wasn't even in the bar where Godel was theorizing...
Oh, about those imaginary numbers. The point isn't about just blindly counting square roots of negative numbers. That's just a nifty bonus that comes from the fact that i*i happened to be -1... I also understand that imaginary numbers were developed for, and have a real world use in some high level electronis stuff.
Anyone remember about this more specifically?
Bob_The_Beheader: I'm assuming you ment "electronics." Maybe complex numbers are used in analog electronics, Like for radios and such, but I've never seen it. I'm positive they arn't used in digital electronics.
Tarquin: When I said 'construct' I assumed foxpaw meant it the sense of 'concept', not 'procedure'.
Wormbo: Complex numbers are just a handy extension of the set of real numbers make certain things easier. Hey, take a kid who just learned how to add numbers and tell him or her that you know a number that can be added to e.g. 5 and the result will be less than 5. It's basically the same thing. You simply didn't know the whole thing. In fact, you'll never know the whole thing. Just ook at quaternions.
Foxpaw: Well, I think that agrees with Dirk Fists original comment - the child in question clearly doesn't understand addition, he or she has only learned a "recipe" for the addition of numbers - in this case an incomplete one.
TwelveBaud: I know what 2D vectors are. I know what trigonometry is as related to periodic graphs, triangles, and a unit circle. E.g. sine, cosine, tangent. This is after I've taken all math courses offered in my school system prior to Calc BC. Including the programming and CS ones. So why is it I still don't know how to to any sort of that stuff in UT, even after trying to find the wiki page?
Foxpaw: You might find what you're looking for on Vector or UnrealScript Vector Maths.
Dirk Fist: On the subject of complex numbers I don't understand em. And I wonder if anyone else does either lets take a simple equation which is used throwout vector math X*X + Y*Y = R*R the equation of a circle now lets say that R*R = -5 what shape is it now? In how many dimensions ? Does equality have meaning for complex numbers ? (ie R*R=B*B for multiple values B which are demonstrably different ?) Whats happens when R*R = i ? Square root comes from the definition of area, a negative area would be a hole, saying that the width of the a square hole is a magnitude perpendicular to normal numbers seems unnatural to me.
Wormbo: Don't mix it up. The definitions e.g. for square root have been extended for complex numbers because it was neccessary. Don't try to imagine objects with a complex width or something, that will only cause futher confusion.
Tarquin: Thanks Wormbo Good answer. In fact, "Square root" DOESN'T come from the definition of area – that's engineer talk. Area just HAPPENS to nicely fit with squares and square roots.
Dirk Fist: As far as I know the first use of square roots as a concept is the pythagorean theorium http://www.ies.co.jp/math/java/geo/pythasvn/pythasvn.html Hence the definition of square root does come from the definition of area. As far as complex width or other quantities, you say the definition was extended because it was neccessary, therefore there are real world properties for which these numbers apply. It is also obvious that rather than answer the question, you have responded by essentially saying that it cannot be understood.
Tarquin: Again, don't confuse the application of maths to the real world with the abstract nature of maths. The notion of area may have originally inspired the notion of multiplication, but not necessarilly. Multiplication is just repeated addition.
Dirk Fist: I'm not confusing the application of maths with the abstraction. My Question is NOT how do I use complex numbers, there are plenty of formalulae out there for the multiplication, division etc. of complex numbers. But so far no one here has demonstrated an understanding of them in the abstract, Or for that matter has shown a need for them. As far as I can tell they are essentially a thought experiment that has gotten out of hand. Another non-euclidean method of handling negative roots is the fact that a square root has indeterminate sign (hence ± in front of it) therefore it is equally valid to say that the square of a value with indeterminate sign has indeterminate sign. Under this interpretation the square root of -1 = ±1.
Tarquin: Ok, Dirk and Foxpaw, you both need to understand something: ALL of maths is a "thought experiment". It is a purely logical discipline. It often happens to have useful applications. Until you can accept this fact, things such as complex numebrs will indeed seem incomprehensible to you. And no, it is not "equalyl valid" to say a square has an inderterminate sign. That is completely wrong.
Wormbo: I'd like to add that complex numbers have quite some very useful applications as well. There are cases where calculations with real numbers would actually be much more complex than calculations with complex numbers. (Or something... )
Tarquin: yup, things like residue integration. Also, complex numbers are used to represent stuff to do with quantum particules, IIRC. If you imagine real numbers as a line, and complex numbers as a plane, it just means you have more "elbow room" to do things in.
Mychaeel: Indeed, quantum mechanics would be unthinkable without complex numbers – and without quantum mechanics, modern semiconductor physics wouldn't be thinkable, and without modern semiconductor physics, none of us would be able to discuss this matter on the Unreal Wiki...
Dirk Fist: Since ALL maths is nothing more than a thought experiment then viewing roots as having indeterminate sign IS equally valid. Much like Non-euclidean geometry, in which some of the 'LAWS' are assumed to be wrong and the resulting geometries are found to be equally valid, with real world applications. As far as extending numbers to multiple dimensions that's what vectors are for, also since in the end complex numbers are ALWAYS represented as pairs of real numbers ANY application of complex numbers can be accomplished EQUALLY well with real numbers. And still no one can say what the shape of X*X + Y*Y = -5 is ? Or how many dimensions that shape would occupy ?
Tarquin: Dirk, you still don't get it. Complex numbers extend numbers because parts of the numbers system are "missing" until you put them in: the real numbers are not complete, exactly because -1 has no square root. The notion of complex numbers follows on from the basic axioms of number theory. You're right about non-euclidean geometry, but you're not really putting things together properly: to avoid having complex numbers, you'd need to make changes at a much lower level. And complex numbers are "sort of" like vectors in one way, but really, they're not at all. Vectors don't solve problems about numbers, they are a layer on top of them. Now I could really blow your mind and tell you that you can have vectors defined over complex numbers.... I suggest you go and learn more about the subject before you generalize things you don't seem to fully understand. Frankly, you're bugging me, you're being n00bish and you're bordering on trolling. (And X*X + Y*Y = -5 is a 4-dimensional shape, if you're defining X and Y to be in the domain of complex numbers. 4-dimensional shapes are useful, don't knock em.)
Ironblayde: Wow, I just found this page for the first time. One hell of a rant. I just want to suggest to Dirk, that talking about complex numbers as being distinct from real numbers isn't really accurate. Complex numbers aren't a completely separate entity, but a generalization. They constitute a larger set of numbers which includes the real numbers as a subset. (Any real number x is the complex number c = x + 0i.) Saying that complex numbers are useless when we already have real numbers is like saying that rational numbers are useless because we already have integers. Also your analogy to non-Euclidean geometries isn't really appropriate either. Non-Euclidean geometries arise from replacing Euclid's parallel postulate with a slightly different version... but that postulate (that given a line L and a point P not on L, there exists exactly one line through P parallel to L) is a statement that cannot be proven. Replacing such a thing with a different assumption is a little different than just redefining a well-established term like a square root to mean what you want it to mean.
On the original topic (as if anyone remembers the original topic by now ), I agree completely. I'm new to UnrealEd so I haven't seen people making the particular comments Tarquin referred to, but I've seen plenty of people new to game programming in general say similar things. I wish I had a dollar for every time I've tried and failed to talk a would-be hobbyist programmer out of trying to code a 3D engine when he doesn't even know what a pointer is. Too many people out there worry so much about expanding the breadth of their knowledge as quickly as possible that they forget to be concerned with the depth of what they know, and then they're surprised when the whole pile collapses at the first sign of trouble.
Dirk Fist: If you will refer back you will see I never claimed to understand them. Sorry for being Noobish. On the Quaternion page quaternions are described as 4 dimensional complex numbers with two additional roots for -1 (j and k). Additionally it states that the multiplication of two quaternions is the combination of the rotations specified by the quaternions. So how do you meaningfully multiply i*j, i*k, j*k ? It is obvious that i,j and k are perpendicular (otherwise they would disappear in the sum).
Ironblayde: For multiplying the three imaginary units, i*j = -j*i = k, j*k = -k*j = i, k*i = -i*k = j. So what you said was right; for example, if you think about i, j, and k being unit vectors along the x, y, and z axes, respectively, their cross products evaluate as above.
Quaternions are a great application of complex numbers that are, as far as I know, used pretty often in computer graphics. In addition to not suffering from the problem of gimbal lock as the aforementioned page points out, they're also well-suited for interpolating between two orientations, e.g. getting a camera to follow a smooth path.
Dirk Fist: One of the things that bugs me though is that if this was a four component vector you would still have a cross product without the special treatment for the real component. It is interesting that the cross product of parallel vectors is zero (all terms cancel out) so using vector rules i*i = 0
Tarquin: remember: vectors and complex numbers are not at all the same! Vector are on top of numbers: they are objects that can be multiplied by numbers. Complex numbers are numbers extended to a larger space. There are some similarities (depending on hos you look at them), but for things like multiplication and products, it does not help at ALL to try to compare them.
Dirk Fist: Actually complex numbers are just as much on top of numbers as vectors. Since the alternative is that X*X + Y*Y = -5 is an equation in two dimensions (X,Y) where the dimensions just happen to be two dimensional. Also complex number lists complex numbers as a special case matrices which is a special case of Linear algebra
EntropicLqd: Except that in the example above it would actually be (a + bi) * (a + bi) + (d + ei) * (d + ei) (unless you prefer using j I guess).
Tarquin: Dirk, the notion of vector space can be applied to many things. You can choose to write negative numbers as an ordered pair of positives (a,b) with b > a if you like – that makes negative numbers vectors over the positives (to a certain extent – the axioms fail because it's not a field). Stop thinking of vectors as a physical concept; that is only one aplication of them. A vector is an object that you can multiply by a number: that's what I mean by vectors being "over" numbers. Many things can be considered as vectors, not just spatial vectors used in applied maths. The analogy between complex numbers and vectors breaks down when you consider multiplicaiton. At this point, you have to think of complex numbers as just an enlargement of numbers rather than sitting over them.
Dirk Fist: X*X + Y*Y = -5 is an equation in two unkowns it only becomes four unkowns if you CONVERT the complex numbers to pairs of ordinary numbers in which case it becomes the equation a*a+2*a*b*i-b*b+d*d+2*e*d*i-e*e = -5 which can be seperated into the pair of equations (a*a+d*d) - (b*b+e*e) = -5 and a*b+e*d = 0 now at this point a, b,d or e could be complex, which makes the dimensions of this equation potentially infinite.
Tarquin: WHAT??? You can't do that! When you decompose a complex # into two reals, they are REALs. You can't then say "oh, they might be complex". Come on. It's stuff like this that makes me think you're just trolling. If you're this confused about how maths works, go ask a teacher or get a book. You could go read Fundamental theorem of algebra but it'll probably worry yyou even more ...
Dirk Fist: So your saying that once you decompose them into reals the square root of -1 no longer has a solution ?
Darwedu: No. Complex numbers don't stop existing, but you know a,b,d and e are NOT complex. You divided the complex equation into two real equations, and both real equations DON'T have complex coefficients.
Tarquin: Go read something like http://library.thinkquest.org/20991/alg2/cn.html and STOP TROLLING, Dirk.
Mortal Monkey: So is ±5 != 5 then?
AlphaOne: ±5 is two numbers as in the root of x^2=25. It can also bea range of numbers, which is used in error/precision notation.
Mortal Monkey: An example:
Let's say X = 5². We would then know that sqrt(X) = 5, not ±5, because 5 is positive.
Now let's also assume X = Z². We don't know wether Z is positive or negative, therefore sqrt(X) = ±Z.
Now what happens if someone else later tells us that Z = 5?
5 = sqrt(X) = ±5
Foxpaw: I don't think that SQRT(5²) is 5. To my knowledge, the "solution" would be the complete set of numbers that satisfy the equation. So it would still be ±5. Or so says my Calculus professor.
Tarquin: "square root" is a 2-valued function, so yes, the answer is ±5, or just "5 and -5". But "SQRT" in computing is by convention "the positive of the two square roots", so it's just 5. Likewise the root sign – that also means the positive one, which is why you have to write ±√x in formalae to mean both roots. See square root.
Mortal Monkey: You are, ofcourse, both correct. Therefore, It is my conclusion that you cannot use common sense in mathmatics.
PS: My connection seems to be acting up, wikipedia keeps giving me 404s. Anyway, how does a power function work? Because (±5)² does not produce {25, 25}, does it?
Foxpaw: I believe that it does, though since one of the 25s is redundant it could be reduced to just 25. Though I think that if it were ±5 cubed, the solution set would be ±125
Tarquin: "±5" isn't a number you can then do further calculations, without keeping in mind that you're really dealing with two possibilities. Do the stupid questions never cease?
Mortal Monkey: Is the moon made of cheese?
WheatPuppet: I'm really tempted to add a "Refactor_Me" to the bottom of the page. Don't make me do it!
Tarquin: Please do. The whole complex number debate just irritates me. Wipe it!
dataangel: Dude, it gets worse. It's not necessarily that these people didn't pay attention in math. In my trig class all we learned about matrices was that a^-1*b can gives you a solution to a system of 3 equations. That's as deep as it ever got, and that's still all I know (although I'm learning). But it can get way worse. Highschool math teachers are often seriously lacking.
Recondite Lol, makes me feel like a failed geek. heh. I grew up in the deep deep south, math education was horrible. Noone ever really explained what f(x) meant in reasonable terms country kids could grok (i still scored a 710 math on SAT, hooray for standardized testing)–but i honestly suck with math either naturally or due to horrible educational conditioning. i dont do vector math or matrices, took one discrete class in college, and it hasnt been high on my priority list to fit math into my skull. that being said, i'm not gonna go messing around with SVG or unreal vector math until i have to, i'm sure i'll get by ok when i do(with a bit of head banging), but it certainly won't be my cup o tea.
Tarquin: I have an idea... perhaps [WikiBooks] has something on vector maths. If not, perhaps some of us could start something!
dataangel: I'd definitely be willing to help. [33] As you can see, the trig book is seriously lacking, especially when it comes to vectors. Although I'm sure after a certain point vectors becomes its own field of study.
Wormbo: Whatever you are doing when editing pages, please do it in the browser or a plain text editor. You are inserting weird characters into pages.
dataangel: Huh? Post a screeny so I can see. I'm typing this straight into Firefox 0.9.2. Should be straight plain text. Oh.... come to think of it, there seems to be a problem with the connection between Qwest customers and beyondunreal.com – sometimes the pages I get from the main site and the forums show up garbled. But strangely not on the wiki. Perhaps for the wiki it's backwards? Read:
Wormbo: Text Mangling Alert again. I took a screenshot of your changes so you believe me:
Mortal Monkey: When I was first introduced to the concept of wiki, I imagined something like this was bound to to happen a lot more often.
Bob_The_Beheader: Whao! Cool yourselves people! Bigass math argument alert! Bigass math argument alert!
Graphik: http://wiki.beyondunreal.com/wiki?action=history&id=Tarquin/Trig_Rant
Note the date on the revision prior to yours.
EricBlade: Wow, I never saw this page before In my school system, Trig was 11th or 12th grade material, and vectors were things that you didn't get until college. I also managed to fail Trig twice in high school, and again in my one year in college, I think because simply put, no one had at all a convincing reason as to what one would ever actually use the stuff for. Since I've been thinking about that over the last couple weeks, as I've been learning some of the more useful vector functions, I actually called my high school math teacher, and asked him to give me an example where in the real world, someone would actually use Trig .. the only thing he could come up with was rocketry and aeronautics. On that note, I still haven't seen where I would use Trig anywhere in here (although that might be because I don't -know- trig), but I am learning the ways of using vectors. yay! "Oh no, not another learning experience!"
Mychaeel: The more you know, the higher are the chances that you'll be equipped to solve your actual, everyday problems with a mental tool that actually suits the problem; those are probably the problems you'd otherwise laboriously have to "work around" without even noticing that you're "working around" something ("My, that's a complicated problem!") by having only less-qualified tools at your disposal. I'm not surprised the teacher couldn't come up with a "real-life example"; that's like asking where one might ever see the color "BlanchedAlmond" [34] used on a website.
It's probably possible to build a (metaphorical) house with only a hammer ("If the only tool you have is a hammer, then everything looks like a nail" [35]), but it would certainly cost you a disproportionate amount of effort, time, labor and perhaps even money, and you might end up living in a crooked hut because you just couldn't think of a way to tackle a problem others would find simple and straightforward to solve with the right tools.
Tgusagalpa: I start trig next year, but I went ahead and practiced using it within unreal script. If I ever have a problem, I will go to the library and get a book. If you paid attention in algebra and geometry, then trig is algebra + geometry.