THESlS r0315 33”“' ' 7‘” '.' .'.' '7' 713m 7“ ‘34 51mg {1 ' flittigm‘a {Kati L University 1 '--'-".r 9 This is to certify that the thesis entitled 3-DIMENSIONAL MODEL OF THE KINEMATICS OF THE HUMAN SPINE presented by Tsang Yeou Chen has been accepted towards fulfillment of the requirements for Masters degreein Elect. Engr. ¢/‘ -.,._ Michael Shanblatt Date 55 27) /? soap iMEHOMmQMLP wcflmmooomm mpmcwcpooo a zowpmamhhoo mwmc mmeH NW , .HS. OPCOU l_---- nopsmSoo 0mm mSHmm . . _ _ pm>momO cmesm mmunmphm> Becamao T a... span _ eao mwmsH 10 4112 graphic terminal. 3.2 Collection of Vertebra Morphological Data Excised and cleaned vertebrae were individually mounted on a block of foam, placed on the traveling bed of the CAT scan, and incremented through the machine while collecting cross sectional density data. Each data set was made up of a 512x512 matrix that describes the cross sectional density of a 2 mm slice through the vertebra. Approximate 30 such slices were obtained for each vertebra. Four slices, representative of the type of radiographic data that was obtained from the CAT scan, are included in Figure 2. The complete density data set for each vertabra was stored on magnetic tape and then transfered to a PRIME 750 computer. By testing the density data and detecting the large density change that occurs at air/bone interface and then following this interface around the perimeter of the vertebra, a set of X and Y coordinates that describe the outline of each vertebra can be determined. Since the contours obtained from the individual vertebra are very irregular, they will occupy large quantities of memory if we want to describe the contours precisely. In order to save memory needed to accomodate the contour data, the contour line is approximated by straight line segments. In performing the CAT scan, the axis of movement through the machine is perpendicular to successive cross sections of each vertebra and defines the Z axis along which the contours 11 Figure 2. CAT scan radiographs of L5. 11 12 are stacked. The location of each contour on the Z axis was determined by recording the position of the traveling bed when a scan was completed. A partial set of morphological contours are shown in Figure 3. 3.3 Three-Dimensional Reconstruction of Morphological Data Three-dimensional representation of vertebral data is accomplished through the use of a set of general purpose computer graphics programs (MOVIE.BYU). These programs are unique, allowing data describing spatial attributes of the vertebrae to be maintained in a highly structured list form. The MOVIE.BYU software provides a program (MOSAIC) that takes the contour data as input and generates panels between adjacent contours. These panels constitute a: planar approximation of the surface of the vertebra. Once the data set describing the vertebral surface has been obtained, this data can then be read into another MOVIE.BYU program (DISPLAY) and the vertebra can be displayed as a three-dimensional object on the Tektronix 4112 graphic terminal. The 3-dimensiona1 models of L3, L4 and L5 are shown in Figures 4, S and 6 respectively. 3.4 Tektronix 4112 Graphic Terminal Description (9,10) The Tektronix 4112 terminal is a programmable computer display terminal. It receives commands from a host computer 13 ‘12; ~ \’—‘~\ 23 fin ‘\ “ ‘-‘a'I-Ii-Iii:=l!!gg!ii..kk ‘.'..iii=!llii’ ‘hn. Figure 3. Topographical map of L5. 13 11+ Figure 4. Three-dimensional model of L3. 14 15 A 11%. is... if. {“1 X _. u ‘ ,_ . . . W 1... 1% M‘ o.) vfipwamfino: Three-dimensional model of L4. 15 16 Three-dimensional model of L5. Figure 6. 16 17 and performs different operations according to the commands. This terminal's commands appears as a sequence of individual ASCII characters having a specific syntax. In order to use the terminal prOperly, a package of host computer subroutines had to be written to communicate with the terminal. 3.4.1 Command Syntax Before describing the terminal driver routines it is necessary to describe the representation of command syntax briefly. 3.4.1.1 Individual ASCII characters Individual ASCII characters sent to or from the terminal are enclosed in parentheses. Example: (A) The ASCII "A” character. (ESC) “Escape” control character. 3.4.1.2 Sequence of ASCII characters Expressions enclosed in "angle brackets" represent sequence of ASCII characters which might be sent to or from the 4112 terminal. 18 Example: A pair of X and Y coordinates as encoded for transmission to the terminal as part of a command. 3.4.1.3 Specific values To represent specific values of commands, specific values are included between the angle brackets. Example: The coordinate pair X=0, Y=1000 as encoded for transmission to the terminal. 3.4.1.4 Parameters Each command has its own op code consisting of one or more ASCII characters. After the op code there may be one or more parameters. The parameters have many types with each data type having its own syntax and coding scheme. The host computer has to send the parameters according to their type or the terminal will not be able to recognize them. Three of the parameter types that are most frequently used are: A sequence of characters representing an integer number. l9 (int-array) An array of parameter, including a "count" for the array sent as an parameter at the beginning. A sequence of characters representing X- and Y- coordinates for some location on the 4112's screen. 3.5 Description of 4112 Terminal Driver Routines The driver routines can be divided into three parts. One is for initialization status of the terminal which is called every time the DISPLAY program in MOVIE.BYU is executed and. the Tektronix 4112 terminal. is used. as the graphic display device. Another is called when a line is to be drawn on terminal. It receives coordinates and light intensity values of the start and end points of a line that is to be drawn from the main program and issues appropriate commands to the terminal. The third part of the driver routine is a subroutine which is called whenever a picture is going to be sent from the host computer to the terminal. The purpose of this routine is to clear the screen and draw a square box around the graphic area on the screen. 3.5.1 Initialization Routine When ‘the 'Tektronix 4112 terminal is selected as 'the 20 graphic display device at the beginning of the execution of the DISPLAY program, many 4112 terminal status parameters must be set so that it can work consistantly with the host computer. The terminal. has «eight different line styles: solid, dashed, etc. One of these must be selected before drawing a line on the screen can begin. Since the MOVIE.BYU software always draws solid lines, the computer must send a cmmmmnd sequence to set the line style ix) 0. The following command sequence accomplishes this. (ESC)(M)(V) The 4112 has three "bit planes" of display memory. Each bit plane holds one binary bit for each pixel in the raster memory space. With 3 bits per pixel, a pixel's gray-indices can be any number from 0 to 7. Different gray index in raster memory will show up as different intensity on screen. With 1 bit. per pixel, a pixel's gray-index. can assume only two values black or white. The terminal's display area can be defined as 3 surfaces, each with one bit plane or as one surface with three bit planes. In the MOVIE.BYU software, only one surface is needed but each pixel should be able to assume more then two intensity levels for continuous tone image displays to be accomplished. So we define one surface with 3 bit planes by issuing the following command. 21 (ESC)(R)(D)(1)(3) The 4112 terminal uses fraction numbers between 0 and 1 to represent gray-level. Gray-level 0 represents transparent and 1 represents black. For each gray-index we assume a gray-level to it according to Table 3.1. Gray-index Gray-level 0 transparent l 25 % 2 30 % 3 45 % 4 60 % 5 70 % 6 '85:; 7 90 % Table 3.1 Gray-index-to-gray-level assignments. The gray-level for each gray-index can be defined by issuing the following command. (ESC)(R)(G)(l) The background of the display area of the 4112 can also 22 be assigned one of the eight gray-indices. For the purpose of flexibility in viewing the displayed object on the screen we wanted the background gray-index to be selectable. So, in the initialization routine the host computer asks the user to enter the background gray-level. The host computer then reads the gray-index entered by the user and issues a command to set the background gray—index as follows: (ESC)(L)(I)(7)(l) Where i is the background gray—index entered by user. The 4112 display area contains two parts: one is for conversational dialogs between. the loperator and the host computer called dialog area, the other is for displaying graphics called graphic area. The dialog area can be any of the three surfaces. Since there is only one surface in the application of MOVIE.BYU the dialog area is overlapped with the graphic area. The following command should be issued to set the dialog area to be on surface one. (ESC)(L)(I)(1) The dialog area can be set visible or invisible on the surface. Since we want to be able to see messages sent by the host computer at all times, we should set the dialog area to be visible by issuing the following command. 23 (ESC)(L)(V)(1) The last step in the initialization is to set the size of the graphic area on screen. The screen of the Tektronix 4112 terminal consists of 4096-by-4096 pixels. The graphic area can be viewed as a window on the screen. Since we want the graphic area to be as large as possible, we set the window size to its maximum value 4096x3072. This can be done by issuing the following commands. (ESC)(R)(W) (ESC)(R)(V) 3.5.2 Line Drawing Routine In MOVIE.BYU an object can be displayed as a line drawing or as a continuous tone shaded image. In the line drawing mode, when a line is to be drawn the main program tells the driver routine the coordinate of the start and end points of the line. The driver routine then issues a command to the terminal to move the beam to the start point, then issues another command to draw a line from the current beam position to the end point of the line. In continuous tone mode, besides telling the driver routine the coordinates of the start and end point of the line, the main program also specifies the light intensity of these two points. In MOVIE.BYU the light intensity is composed of three components 24 red, blue: and. green. The intensity' of each component is represented as integers ranging from 0 for darkest to 255 for brightest. In 4112 there are only 8 gray-levels ranging from gray-index 0 for darkest to gray—index 7 for brightest. So, the gray-index of a point on screen can be computed by the following equation, Gray-index = (SR+ SG + SB)xl/3x8/255 (3.1) where SR : Intensity of red component of the point; SB : Intensity of blue component of the point; SG : Intensity of green component of the point. Since SR,SB and SC in equation (2.1) are known for the start and end points of the line, the gray—indices of these two points can be computed. The gray-indices of every point in between the start and end points can then be computed using interpolation as shown in the equation below, Gi = Gs + (Ge - Gs) x d/D (3.2) where Gi : Gray-index of a point i in between start and end points of a line; Gs : Gray-index of start point of the line; Ge : Gray-index of end point of the line: 25 d : Distance from start point to point i; D : Distance between start and end point. When drawing a line in continuous tone mode the driver routine first moves the beam to the start point of the line and sets the line-index to the gray-index of the start point, then the line is drawn point by point until it reaches the end point. Before a point is drawn its gray-index is computed by equation (3.2), if it is different from current line-index then the line-index will be set to gray-index of the point to be drawn. To set the line index the host computer sends a command as follows: (ESC)(M)(L). 3.5.3 Clear Screen Routine This routine is called before a picture is to be displayed on the screen. It first asks the user if the previous picture on screen should be erased before the new picture is going to be displyed by sending' a prompt as ”(OVERLAY)". If the answer is ”YES" then nothing will be done. Otherwise the screen will be erased by sending a "PAGE" command to terminal and a square box will be drawn around the graphic area of the screen by sending 4 "Draw line” commands. 26 3.6 Apple Controller The MOVIE.BYU software provides a program named DISPLAY which takes a data set describing the surface of an object as input and displays a 3-dimensional reprensentation on graphic devices such as the Tektronix 4112 computer terminal. The object can be translated in any direction and/or rotated about any one of the X,Y or Z axis. DISPLAY also provides a command called ”Animate" which allows the user to define a sequence of pictures and then have the computer display them. If the output is to the user's terminal, the program will display the first frame and then wait for a carriage return before displaying the next frame. Further carriage returns will display the rest of the sequence. Once the data set of X,Y and Z coordinates describing the outline of vertebrae is available, it can be read by DISPLAY and then the vertebrae can be (displayed on 4112 terminal. By using the "Animate" command and recording the frames displayed to videotape, the continuous motion of vertebrae can be shown. Because of the large amount of data that is transfered from host computer to terminal, the animation sequence is a time consuming process. For example, using a 1200 baud communication channel, it will take about 40 minutes to display an object described by 1500 surface points on the 4112 terminal. Under this condition it will take about 10 hours to complete an animation sequence consisting of 15 frames. Due to the necessity of interaction 27 between host computer and user in the animation sequence, a constant supervision is required in the production of video tape. In order to eliminate the need for constant supervision of the videotape production process an Apple IIe computer was employed to take over the interaction between user and host computer in the animation sequence. The connection between the Apple computer, host computer, Tektronix 4112 terminal and videotape recorder is shown in Figure 7. The Apple computer is connected in parallel with the Tektronix 4112 terminal. During the animation sequence the Apple computer neglects the graphic commands sent by the host computer, however it keeps on monitoring the characters from the host. After the completion of a frame the host computer always send a specific sequence of characters. By detecting this sequence of characters the Apple computer will be able to know when a frame is finished. Once the completion of a frame is detected, the Apple computer activates a signal to tell the videotape recoder to record the frame. Having recorded the current frame, the Apple computer sends a signal to tell the recorder to stop the recording and then send a carriage return to the host computer to activate the sending of the next frame. After the animation sequence is completed the Apple computer halts its monitoring operation and acts just as a computer terminal so that the next animation sequence can be set. The Apple computer resumes its monitoring Operation after the next animation sequence begins. By using the Apple computer, the production of 28 videotape can be automated, eliminating the need for constant human supervision. The assembly language program of Apple IIe for automating the production of videotape is in, shown Appendix A. 29 mom hmchoomu mmmvomvw> can HmnflEhop NHH: xwzonwxma .hmpsmEoo .coaposuohm mmmpomcfi> wcHPmEopsm oHH onQ¢ .MopsmEoo mSHmm cmozpon mcowpooncoo mo awkwmflc xooam .n muswflm _ hmcnoomm >9 .mhmgmo owcfl> / \ manpoocw> AmpsmEoo mHH magma ‘7 lI/I Haaflesmp NHL: afieoapxme Emacs Aomm mSHmmv HoPSQEoo who: CHAPTER IV MATHEMATICS OF KINEMATICS 4.1 Coordinate Systems Before the discussion of kinematics it will be helpful to define the following three coordinate systems for the vertebrae and the tungsten-carbid balls mounted on them. (1) World coordinate System The world coordinates of a ball refer to the locations of balls measured in the System .Anthropometry Laboratory (SAL), representing ball coordinates in the human body. Units are in centimeters. (2) Local Screen Coordinate By processing the data derived from the CAT scan, the set of data that describe the topological surface of a vertebra and the location of balls mounted on it can be obtained. These data then can be read into a graphic program (MOSAIC) where the vertebrae will be reconstructed as a three-dimensional object (N) the screen. When performing the 30 31 CAT scan, each vertebra is placed arbitrarily and consequently these data do not represent the actual spatial position of each vertebra as they are in the human body. Each vertebra has its own data set and axis system that describe its shape, hence we say that these data are in the local screen coordinate system. (3) Global Screen Coordinate A series of coordinate transformations can be performed that transform the local screen coordinates of each vertebra into a global screen coordinate system. In this coordinate system, vertebrae can be represented as three-dimentional solid objects with the same spatial position as they are in the human body. 4.2 Static Kinematics 4.2.1 Coordinates of Balls in Local Screen Coordinate System A Fortran program has been written which uses the data obtained from the CAT scan as input and determines the set of X and Y coordinates of the outline of each vertebra. The contours of these X and Y coordinates that form closed loops can be displayed on the Tektronix 4112 terminal. In running this program several parameters such as minimum number of points per loop, minimum and maximum distance in pixel 32 between two adjacent points, threshold level of intensity, etc. can be defined. By properly setting these parameters the balls mounted on vertebrae can be detected, appearing as small loops as shown in Figure 8. The center of these small loops can be defined as the centers of the balls in local screen coordinate can be approximated as follows: Xc= l/2(Xmax+Xmin) (4.1) Yc= l/2(Ymax+Ymin) (4.2) where Kc= X coordinate of the ball in local screen coordinate system; Yc= Y coordinate of the ball in local screen coordinate system; Xmax(min)= maximum(minimum) X coordinate of the small loop correspond to that ball; Ymax(min)= maximum(minimum) Y coordinate of the small loop correspond to that ball. The Z coordinates of the balls in local screen coordinate can be approximated as the Z coordinates of these loops. Using the approximation described above, the local screen coordinates of balls detected can easily be determined. Care must be taken in detecting balls mounted on 33 Figure 8. Appearance of balls on terminal screen. 33 34 vertebrae because some of the voids within the vertebrae will also appear as small loops on screen which might be misunderstood as balls. In order to prevent this kind of ambiguity, a procedure of verification is necessary. This can be done by computing the distances between any two balls in local screen coordinates and compare them with the distances in world coordinates. Since a length of 17.23 cm in world coordinates will occupy 512 pixels in local screen coordinates, the distance between two points in local screen coordinates should 512/17.23 times as long as the distance between those two points in world coordinates. A. Fortran program has been written ( Appendix B) which uses the world and local screen coordinates of balls as input and then compute the distances between balls in world coordinates and local screen coordinates. The distances in local screen coordinates is compared with the theoretical distances in local screen coordinates ( i.e. distance in world coordinate x 512/17.23) and the error between them is reported. Those balls with the largest error in distance should be discarded. An example of the output from this program with balls in L5 is shown in Appendix C. We see that the balls with numbers 5, 8 and 9 always have larger error in distance then the others. The local screen coordinates of these three balls are inaccurate and should be discarded, leaving only balls with number 1, 2, 3, 4, 6 and 7 having accurate local screen coordinates. 35 4.2.2 Coordinate Transformation A point X in ii three-dimensional space can be represented as a homogeneous coordinate form as: (11] x\ X = y (4.3) 2 L1. and the transformation from one coordinate system to another which always include rotation, scaling and translation can be represented as a matrix multiplication as follows: 'x 3 I 1 2 m11 m12 m13 1“14 x1 y2 = m21 m22 m23 m24 y1 (4'2) 22 m31 m32 m33 m34 z1 1 o 0 o 1 1 k a N J or X2: M*xl (4.3) where X1 = the coordinate of a point in coordinate system 1; the coordinate of the same point in coordinate system 2; M II 36 M = transformation matrix. The transformation matrix M can be computed if the angle of rotation, scaling factor and amount of translation are known. Once this transformation matrix is known, every point in coordinate system 1 can easily be mapped into coordinate system 2. 4.2.3 Transformation From Local Screen Coordinate System to Global Screen Coordinate System Once the coordinates of balls in the local screen coordinate system and the global screen coordinate system are known, we can find a transformation matrix for each vertebra that transforms the position of the balls from the local screen coordinates into global screen coordinates. These matrices then can be used to transform the 3-dimensional data of each vertebra in local screen coordinate system into global screen coordinate system. The transformed 3—dimensional data of each vertebra in the global screen coordinate system then represents the spatial position of each vertebra as they are in human body. Multiple vertebra can then be merged together and displayed on the graphics terminal. 37 4.2.4 The Derivation of Transformatiom Matrices The transformation between two coordinate systems always include axis rotation, scaling and translation. The transformation matrix can be defined explicitly if the parameters associated with rotation, scaling and translation are known. Sometimes it is difficult to know these parameters. Sometimes only the coordinates of some common points in both coordinate systems are known. Simple arithmatic operations can then be used to determine the transformation matrix M. From equation (4.2) we know that Im \ 11 “12 “13 “14 M = m21 “22 “23 “24 (4'4) m K 0 0 0 l j . There are 12 unknowns in. matrix M. Each point with coordinates in both coordinate systems yields 3 linear equations. x2 = mll*xl + m12*yl + ml3*zl + ml4 (4.5) y2 = m21*x1 + m22*y1 + m23*21 + m24 (4.6) 22 = m31*x1 + “32*Y1 + “33*21 + “34 (“'7’ So, 4 such points will be enough to determine the 12 38 unknowns mij. However, if more then 4 points are known no definite solution will exist and a least square error method (12,13) should be used to determine the 12 unknowns with minimum error. For k points with coordinates in both coordinate system 1 and system 2 known, we can write 3 matrix equations as follows: r \ I r \ x21 X11 Y11 211 1'7 “11 x22 X12 ylz 212 l “12 (4.8) C = C C C O ml3 ' ' ' ° ° m14 Kx2k, Lxlk le 21k 1 J L d l V W r rY21 x11 Y11 211 1 “211 y22 x12 y12 212 1 “22 (4'9) ’ = ' ° ' ' m23 ' ' ’ ° ° m24 Y x z 1 1 2k, 1 1k Ylk 1k J K J ’ ‘ r \ r \ 221 x11 Y11 211 1 l m31 z22 X12 Y12 212 1 m32 (4.10) ' = ’ ' ' ' m33 ' ° ' ° ’ m34 Lzzk, Rxlk Y1k 21k 1 g L , 39 where xij = x coordinate of point j in coordinate system i; zij = z coordinate of point j in coordinate system i. y coordinate of point j in coordinate system i; Since all xij, yij and zij for i=l,2 and j=l,2,3,...,k are known, (mll “‘12 m13 m14] can be obtained by solving equation (4.8) using the least square error technique. Similarly (“‘21 1“22 “23 “24) and (“31 “32 “22 “34) ca“ be obtained by solving equation (4.9) and (4.10) respectively. Lawson (14) has written a Fortran IV program to solve the least square error problems. This program has been modified to a FORTRAN V program and used in deriving the transformation matrices. In the global screen coordinate system, all the vertebrae will be located in positions as they are in the human body. If we transform the local screen coordinate system of L3 and L4 into local screen coordinate system of L5, then the relative position of these three vertebrae in local screen coordinate system of L5 will look like they are in global screen coordinate system. We can choose the local screen coordinate system of L5 as the global screen coordinate system. Since the world coordinates and local screen coordinates of balls in L5 are known, the transformation matrix M for transforming world coordinates 40 into local screen coordinates for balls in L5 can be obtained using the least square error technique. The matrix M also can be used to transform the world coordinates of balls in L3 and L4 into their' global screen coordinates. Since the local screen coordinates of balls in L3 and L4 are known, once the global screen coordinate of these balls are derived the least square error technique can be applied again and two matrices M193 and Mlg4 can be obtained that transform the balls from local screen coordinates into global screen coordinates. The 3-dimensional image of the vertebrae are only sets of data that describe the shape of vertebrae in their local screen coordinate system. These data also can be transformed to global screen coordinate system using the transformation matrices for transforming balls. For example, if we multiply matrix Mlg4 with the local screen coordinate of every points in 3-dimensional model of L4 [xi Yi zi 1]T, we will get a new set of data that represent the 3-dimensional model of L4 in global screen coordinate system. A Fortran program for transforming the 3-dimensional model of vertebra from a coordinate system to another coordinate system is in Appendix D. By merging the data representing the 3-dimensional model of each vertebra in global screen coordinate system together, a new set of data that represent the real 3-dimensional model of vertebrae is constructed and can be shown on the screen. The 3-dimensional model of L3, L4 and L5 in global screen coordinate system is shown in Figure 9. 41 .o. a 5......» . . I . ‘ . .3; 3M?“ .. .3, if... . ......, . a v. , as»... (main... 5 4 a”. Three-dimensional model of L3, L4 and L5. Figure 9. 41 42 4.3 Dynamic Kinematics In the System Antropometry Laboratory many sets of world coordinates of balls corresponding to the human body in different positions were obtained. For each position a 3-dimensional model of vertebrae can be constructed by going through the procedures described in the previous section. However a much simpler method can be employed. Assume two sets of world coordinates of ball le and Xw2 that correspond to human body in position 1 and 2 respectively are available. Using position 1 as reference Xw2 can be viewed as a rotated/translated version of le. A transformation matrix T satisfying equation (4.11) can be obtained using least square error technique. Xw2 = T*xwl (4.11) For le and Xw2 a transformation matrix M can be found that transform the balls from world coordinates to global screen coordinates. X91 = M*le (4.12) X92 = M*xW2 (4.13) where xgl(2) : Global screen coordinates of balls correspond 43 to human body position 1(2). Substituting (4.11) into (4.13) yields X92 = M*T*le (4.14) From (4.12) we know le = M-1*Xgl (4.15) Combining (4.14) and (4.15) we get X — M*T*M-1*X 92 _ (4.16) 91 Knowing matrices M and T and the 3—dimensional models of vertebrae corresponding to human body in position 1, the 3-dimensioan1 models of vertebrae corresponding to the human body in a new position can be obtained by equation (4.16). While collecting world coordinates of balls in SAL, the human body was placed in many different positions and for each position a set of coordinates were recorded. The sequential change in position of the human body yields sequential sets of world coordinates of balls that in turn can be used to construct a series of 3-dimensional models of vertebrae. The motion of the human vertebrae can be investigated by showing the 3-dimensional model of vertebrae for different human body positions. Figures 10, 11 and 12 44 show 3-dimensional model of L3, L4 and L5 for different human body positions. 45 4.. ' v '3‘ 0" .. ' ringworm: 71"l'lPfl-QJ //Ia'4 5. . I 1%.. r, . -. . l da‘ . .. fl. . < . E. 3” «it a . .. . '1 fi ’4 bat/fl. «1.3.9.». «R400; ’4'“ 1”” ,. . a”. m / L4 and L5. Three-dimensional model of L3, Figure 10. 45 1+6 5:0 ‘ - 0‘9 s-‘QN ‘ - ., - 53:». _. . --' k~_* . a r ' “I- a-TJW ”'0‘ l ’ . . M . ‘ Figure 11. Three-dimensional model of L3, L4 and L5. 46 4? 4...... _.. _ _..._ a§°§ . . g A... N“ Va“... .'.. ”an...” a.“ .. .W 3.73 .: : V . .3... ”flaw . x %J1.§Nvmxu_m '..n4% 3 . 33.1%.“. Three-dimensional model of L3, L4 and L5. Figure 12. 47 CHAPTER V CONCLUSIONS Many models of the human spine have been developed, however none are commited to both a mathematically and visually correct presentation. The model constructed in this thesis not only represents the real spatial relationship of vertebrae but can also dynamically show the motion of the human spine. The model combines fundamental rsearch in the area of human biomechanics with three-dimensional solid image generation technology. Use of such a model will allow individuals to expand upon research being conducted in such areas as impact testing, human response to vibration and analysis of forces developed during athletic activities. In addition, the model will serve as a sophisiticated educational tool to assist in the understanding of complex relationship between soft tissues and body structure of the spine as a function of position and time. Although the model, includes only L3, L4 and L5, the number of vertebrae can be extended to include the whole human lumbar vertebrae or even the whole spine. However, since the graphic area of the Tektronix 4112 terminal is fixed, increasing the number of vertebrae will reduce the resolution of the model. A possible remedy to this problem is 48 49 to upgrade the graphic display devices. The other impact in increasing the number of vertebrae in the model is that the size of data of the model will be increased proportionally with the number of vertebrae. One way to increase the number of vertebrae without increasing the amount of data dramatically is to decrease the resolution of the model. Motion of the spine can also be investigated. A series of images for each vertebra, for sequentially changes in the human body position, can be shown on the 4112 terminal and then recorded on videotape as described in chapter 2. The real time motion of lumbar vertebrae can then be presented to an audience by playing the videotape. APPENDICES APPENDIX A 6502 ASSEMBLY PROGRAM FOR AUTOMATING VIDEOTAE RODUCTION CH EPZ $24 CV EPZ $25 BASL EPZ $28 BASH EPZ $29 BAS2L EPZ $2A BASZH EPZ $2B TEMP EPZ $5E PROMPT EPZ $33 INDX EPZ $5F BUFFER EPZ $60 COUNT EPZ $SC STORE EPZ $5C FLAG EPZ $5D SETNORM EQU $FE84 INIT EQU $FBZF SETKBD EQU $FE89 BELLl EQU $FBDD CLREOZ EQU $FC9C CONTROL EQU $7FA COUTl EQU $FDFO BASCALC EQU $FBC1 DIRECT EQU $77A KBD EQU $C000 KBDSTRB EQU $C010 SEROUT EQU $C205 STATUS EQU $COAE DATA EQU $COAE RESET EQU $FF59 WAIT EQU $FCA8 BS EQU $FC10 ON EQU $C059 OFF EQU $C058 ORG $1000 LDA #$03 STA STATUS JSR SETNORM JSR INIT JSR SETKBD JSR BELLl CLD LDA #0 50 Ll KEYIN LL TEST PROCESS PROCESI DISP LLL UPPER STA STA STA LDA STA JSR LDA STA LDA STA LDA STA LDA JSR LDY LDA PHA AND ORA STA BIT BPL LDA BIT AND JSR LDA LSR BCC PLA STA LDA JSR JMP CMP BEQ CMP BNE JMP ORA CMP BNE JMP CMP BCC CMP BCC AND LDY STA INC LDA CMP BCC 51 CH OFF FLAG 17 CV CLREOZ #509 STATUS #$80 DIRECT #sDF PROMPT PROMPT COUT1 CH (BASL),Y #S3F #$40 (BASL),Y KBD TEST KBD KBDSTRB #$7F SEROUT STATUS KEYIN (BASL),Y DATA PROCESS Ll #SID SCAN #SOD DISP CR #580 #$88 LLL BS #sAO RETD #SEO UPPER #SDF CH (BASL),Y CH CH #$28 RETD RETD SCAN SCANO LOOPS TST RETS BEEP BL BLOOP BLl JMP RTS LDA STA LDX LDA LSR BCC LDA STA CMP BNE INX CPX BNE LDA BNE INC BNE LDA BEQ BNE LDA ORA JSR RTS LDA LSR BCC LDA CMP BEQ JSR JMP LDA STA JSR LDA STA LDA LSR BCC LDA JSR LDA JSR DEC BNE JSR LDA JSR JSR LDA LDA 52 CR #$00 FLAG #$00 STATUS LOOPS DATA STORE TABLE,X TST #505 LOOPS FLAG BEEP FLAG SCANO FLAG RETS SCANO STORE #380 DISP STATUS BEEP DATA #$0D BL DISP BEEP #$00 FLAG CR #$28 COUNT STATUS BLl DATA PROCESl #528 WAIT COUNT BLOOP BELLI #sAO WAIT BELLl ON #$80 LLOOP CR SCRLI SCRL2 SCRL3 LOOPl L2 STA LDA JSR DEC BNE LDA LDA JSR RTS LDA STA PHA STA STA LDA STA CLC LDA STA LDA STA LDY DEY PLA CLC ADC CMP BCS PHA JSR LDA STA DEY BPL LDA LSR BCC LDX LDA STA INC BCS JSR LDA STA LDA STA LDA STA LDA BNE RTS LDX LDA 53 COUNT #5FF WAIT COUNT LLOOP OFF #50D SEROUT #500 INDX CH BASL #504 BASH BASL BAS2L BASH BASZH #S28 #501 #518 SCRL3 BASCALC (BASL),Y (BASZL),Y SCRL2 STATUS SCRLl INDX DATA BUFFER,X INDX SCRLl CLREOZ #$D0 BASL #507 BASH #$00 TEMP INDX L2 TEMP BUFFER,X TABLE JSR DEC INC BNE BYT END 54 DISP INDX TEMP LOOPl $37,$7F,$20,$40,$16 APPENDIX B PROGRAM FOR COMPARING DISTANCES BETWEEN BALLS IN WORLD AND SCREEN COORDINATE SYSTEMS PROGRAM DISTAN DIMENSION WCOOR(20,3),SCOOR(20,3) CHARACTER*80 IPFILE,OPFILE 10 PRINT *,'' READ(*,'(A)',ERR=30) IPFILE OPEN(FILE=IPFILE,UNIT=5,ERR=30) PRINT *,'