This video is entitled transformation rotation, and it's the first in a series of videos that I'm going to do that will look at basic transformations leading up to our first assignment. Starting out with rotation, I think one of the probably easier ones to understand. I'm just going to use as a input just a simple line, and from that line we'll find our different points: start point, our midpoint, endpoint. I'm going to start with rotating around the midpoint. Now, rotate object is a function that has a number of arguments associated with it, and some we haven't seen. It's probably the most that we've seen. It takes five arguments, and they're a couple of things I need to go over with those. What information is it asking for? What format does it have to be in? What is it giving me back? We can look up rotate object in our online help and see what those arguments are asking for under the parameters. The first one is pretty clear, it's the object_id. The ID of the object that I want to rotate. Then it needs a point to rotate around, and that could be a point that's derived from that object, or it could be a point that I select in the scene or a point from another object. It then it needs a rotation angle in degrees, which is a number, doesn't have to be an integer, could be a float, and that is either in positive or negative depending on which way I want to rotate. Then it's asking for an axis, and this is optional. That axis is defined by a plane, and it's telling me that if that's emitted, then it's just going to use the Z-axis of the active construction plane as its rotational axis. We'll look and see what that does. We don't know anything about planes yet, so we really can't put anything in for that. We'll talk about planes in a much later lesson. Because a problem here is then I have an argument that follows that, that I do want to do something with, so copy. What if I want to produce a copy of the line that I'm rotating. I just don't want to rotate it, I want to copy, and that's I have a B-O-O-L, which is a Boolean option, which means either I'm inputting into the argument either a true or false depending on whether or not I want to copy the object or not, and that's also optional. If I left that out, we could see it. I could leave these last two out. We can try that first and see what it does. It'll probably just rotate the object. It probably won't copy it, but we'll see what that does. Let's go back to our coding Window, and see what we have set up. Actually, I'm going to take these last two arguments. The first thing I'm going to do is I'm just going to leave them out because they are both optional. We have our crvID. We're going to use the midpoint, and we're going to rotate it positive 25 degrees. Let's run it. Select the curve and rotates it around the midpoint 25 degrees in the positive direction, which is actually a counterclockwise direction. Clockwise is negative and counterclockwise is positive. I know it seems like it should be the other way around, but that's just the way it does it. It is not copying the object by default. I can undo that. Remember, it's using that midpoint, but I'm not rendering it out. I don't see that midpoint, but it is rotating around it because this is accepting a value. What this is returning is the coordinates of that point, and that's what that accepts. The question is, if I want to skip, if I do want to produce a copy, so I want that last argument to be true. I want to say yes, produce a copy of that line, but I need to skip this one one. In order to skip an argument, I need to write, and if that argument's optional, I need to write none. I need to write the data type none, which essentially means nothing, don't input anything, but input none as a data type. We can run that and we'll see what that does. Now it's producing a copy of that line, and I could run that over and over again, selecting each new copy so I could produce a rotational geometry like that. If I wanted to produce copies in the other direction, would change that to negative. Let's take this original line and we can move it, and if I hold the old key down, it'll make a copy of that. We could rotate that, let's say if I wanted to rotate it around another point, like the start point. I could replace the midpoint here with start point, and let's say rotate it in a different degree, 15 degrees, and I'm still producing copy of that. Again the axis that this is rotating around is whatever the axes of my sea plane is. The Z axis of my C plane, I should say. If we arc rotate in space to take a look at our plane, essentially means that, that point that this line is rotating around is like our world coordinate center with the z going straight up out of this 90 to the other two axes, and that's the axes that it's rotating around. We can do another version of this. Hold the off key down, produce another copy, and rather than using a point that we derived from the line, we could input a point. If I go back to the code, turn this line six on to input a point. So that would be point ID. I guess the question is, is that going to work if it's not coordinate? If it's an ID? Because remember what I'm bringing in here is an ID. If I look back at my tool, my point, well, it saying point as the center, so it's probably not going to work, but we'll see. Now networks are right. This tool does except an ID. I don't have to convert it to coordinate, so I can keep rotating that around that input point. So it's using that as the, if I imagine a z-axis coming up straight out of that point, that's the axis this is rotating around. Now if I change the position of my C plane. If we copied these two things over, and moved our point over a little bit, and let's say we tilted our C plane up into a front view like that. If we run the same code again, now my line is rotating relative to that C plane. So that c plane, the position of that c plane that we put it in, is going to have an effect over the axis of rotation. So that really, its position really sets the rotational axes, so that's rotation. Next, we're going to look at scale.