Skip Navigation

Posts
0
Comments
362
Joined
12 mo. ago

  • Rule

    Jump
  • Let's say I'm writing a computer game, which features a robot holding a gun. I have a list of vectors representing the 3D model of the gun, but how do I know where to draw those points on screen? To transform the gun model to screen coordinates I just need to do this simple process:

    1. scale the gun model so it's the right size for the game
    2. rotate and translate it so it will be in the same coordinate space as the robot's hand, where the wrist joint is at (0,0,0)
    3. rotate again to reflect the current angle of the wrist, now it aligns with the forearm
    4. translate by forearm length so the elbow joint is at (0,0,0)
    5. rotate again to reflect elbow angle, now it aligns with upper arm
    6. translate by upper arm length so the shoulder joint is at (0,0,0)
    7. rotate again to reflect shoulder angle, now it aligns with body
    8. translate by shoulder position so body center of rotation is at (0,0,0)
    9. OK let's just assume we're defining body position directly, so we'll apply another rotation and translation to reflect the robot's position, now our coordinates are in "game space"
    10. of course the "camera" through which we view the action might be moving as well, so we'll need another rotation and translation so transform the coordinates into "camera space"
    11. we need to apply 3D perspective to get the on-screen coordinates. If the z axis of camera space were in the direction we are looking, with 0 at the view point, you could get x and y screen coordinates by dividing camera space coordinates by z, and scaling the result as needed to fit the screen

    Oh dear, that wasn't so simple. Are we going to do this for every vector in the gun model? Well, as it turns out, the first 10 steps are all linear transformations that can be represented by a matrix. And we can encapsulate the entire process by multiplying those matrices together, so instead of 10 operations, we can combine it into one, a single matrix which will take us all the way from the gun model to a position in camera space. So we just need to pass the graphics card some instructions to tell it what to do, plus the list of vectors for the gun model, plus the combined matrix for transforming them.

    There's many other cool things to do with matrices in graphics programming but that's a starting point.

  • Safety

    Jump
  • if it's not the home of the brave, it won't be the land of the free

  • Should be fine with Mint, surely? Cinnamon edition is a weird taste combination but still vegan

  • Deleted

    Permanently Deleted

    Jump
  • HOOOOW can you have any pudding, if you don't yeet yer meat?

  • Neither of those words have ever existed. In the interests of language simplification both have been replaced with "turrist". Please take care to review your Newspeak notifications citizen.

  • It's in many ways a beautiful country and lots of fun to visit. I used to love going there for holidays and road trips. I wouldn't consider it now of course, but that saddens me. I want to go visit, just as soon as sanity and humanity prevails.

  • Deleted

    Permanently Deleted

    Jump
  • Hmm. I think it wouldn't work because the ham would need to be twisted around the bread beforehand. At least that's what my initial experiments with toilet paper indicate.

    EDIT: OK, best I can come up with, you'll need a custom made bread oven in modular sections forming a twisted torus, like a fusion reactor only it's a bread oven. Now get a really big ham. Make a hole in it and assemble the bread oven passing through the hole. If you can't put the ham in the sandwich you need to put the sandwich in the ham. Fill up with dough and start baking. While it's cooking, carve your ham into a Möbius strip twisted around the oven. Disassemble the oven, cut any excess crust off the bread, give it a twist, a flick of the wrist, and voilà! Möbius ham sandwich!

  • Deleted

    Permanently Deleted

    Jump
  • To do it right you really need a piece of ham cut in a Möbius strip too. I think that might be the hard part.

    EDIT: wait, no. Putting the ham in the sandwich. That's the hard part.

  • Deleted

    Permanently Deleted

    Jump
  • Come and talk to me when you've made a Möbius sandwich with a single piece of bread.

  • Imaginary numbers have the worst name.

    I agree, because really all numbers are imaginary. Numbers are also wonderfully useful for describing nature, and it's amazing how what might start as a quest for completeness and elegance ends up reflecting something about the real world. Each extension on our use of numbers is an augmentation, an extended toolkit to solve different problems, but doesn't negate anything which went earlier. For example finding the roots of a polynomial often represents a problem where complex solutions aren't applicable, and "no solution" is the more meaningful result. One kind of mathematics may be bigger and more complete than another, but that doesn't make it better or more true. It just depends on what you need from it.

  • Those are the ones who could read

  • The other fields are attempting to describe reality. While Newtonian physics is useful, as an approximation, it's also quite clearly wrong. You can imagine a universe which follows those rules but it's not this universe, and that's why it's wrong. Mathematics doesn't care about this universe, so you can pick whatever rules you want. Imaginary numbers are not "more accurate", they don't invalidate any previous understanding. They are an imaginary concept with interesting properties. For mathematics, that's enough.

  • The answer to that question didn't change, what changed is how you might interpret the question.

    If I asked “what are the REAL roots of x² + 2x + 2” the answer is still "none". And prior to imaginary numbers being widely used, that is how the question would have been understood.

    Mathematics involves making choices about what set of rules we're working with. If you don't allow the concept of negative numbers, the equation "x+1=0" has no solution. If you give me an apple, then I have no apples, how many apples did I have before? The question describes an impossible situation, and that's a perfectly valid way to view it.

    Different sets of rules can change what's possible but don't invalidate conclusions based on other sets of rules. We just need to specify what set of rules we're working with.

  • Jesus is lord.

    Cross defeats Jesus.

    Cross is lord.

  • A little at a time. We need to get comfortable doing this to cockroaches before we can start large scale testing on humans

  • Who will win this fight?

    Everybody!

  • Another quick fix is to set up a "Note to Self" group in Signal (make a group with 2 people then remove the other member). Nice tidy way to move things around, with a history of things you moved earlier

  • When enclosed in parentheses I believe the correct term is "bolt-ons"

  • most Jewish people

    Whether or not that's true, I don't think it's the sort of claim that should be made without supporting evidence. Bear in mind that the Zionist lobby is powerful, vocal and ruthless, many people may be afraid to speak out against it. If a group can be made to feel like they are the minority, it can seem as if they really are.