|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
D Rotation around an Arbitrary Axis
Generalized variant of 3D rotation around an arbitrary axis is common, for example in robotics, animation, and modeling. Following the logic of previous discussion, a 3D rotation around an arbitrary axis is performed by translation and simple rotations around the coordinate axes. Since the method of rotation around the coordinate axis is known, the basic idea is to combine an arbitrary axis of rotation with one of the coordinate axes. Suppose that an arbitrary axis in space passes through the point (x0, y0, z0) with direction vector (cx, cy, cz). Rotation around this axis by an angle δ performed according to the following rules: · Perform the translation so that the point (x0, y0, z0) is at the beginning of the coordinate system; · Perform the appropriate rotations so that the axis of rotation coincides with the axis z (the choice of the coordinate axis in this case is arbitrary); · Rotate through an angle δ around the axis z; · Perform operations reverse to Step 2; · Perform a reverse translation. In general, for coincides an arbitrary axis (passing through the origin) with one of the coordinate axes, it is necessary to make two successive rotations about the other two axes. For combining an arbitrary axis of rotation with the z axis, first perform a rotation around the x axis, and then around the y axis. For determination the rotation angle α around the x axis (is used to transfer an arbitrary axis on the XZ plane), we project on the yz plane the directional unit vector of this axis (Fig. 2.1a). Components y and z of the projected vectors are components cy and cz of the unit direction vector for the rotation axis. From Fig. 2.1a it follows that: (2.19) and (2.20) Fig.2.1. Rotations unit vector CP for coincides it with axis z After translation to the plane XZ with the rotation around the x axis, component z of unit vector is equal to d, and component x is equal to cx, i.e. component x of the direction vector, as shown in Fig. 2.1b. The length of the unit vector is, of course, equal to 1. Thus the rotation angle α around the y axis required to match an arbitrary axis with the z axis, is (2.21) The complete transformation can be written as (2.22) where the transfer matrix is (2.23) Matrix of rotation around the x axis is (2.24) and around y axis is (2.25) And finally, a rotation around an arbitrary axis defined by the matrix of rotation around the z axis: (2.26) In practice, the angles α and β are not calculated explicitly. Elements of the rotation matrices [ Rx ] and [ Ry ] in (2.22) are obtained from equations (2.19) - (2.21) by performing two division operations and square root operation. While the results have been developed for an arbitrary axis in the first quadrant, they are applicable to all other quadrants. If the direction vector components of an arbitrary axis are not known, then knowing the second point (x1, y1, z1) on the line, you can define them by normalizing the vector connecting the first and second points. More precisely, the vector transformation from the axis (x0, y0, z0) to (x1, y1, z1) is (2.27) Normalization gives the direction vector components: (2.28) Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |