%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%22marimo%3E%3D0.23.9%22%2C%20%22numpy%3E%3D2.0%22%2C%20%22matplotlib%3E%3D3.9%22%2C%20%22pandas%3E%3D2.2%22%2C%20%22urllib3%3E%3D2.2%22%5D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.25.2%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Determina%C3%A7%C3%A3o%20de%20sistemas%20de%20coordenadas%20anat%C3%B4micos%20com%20dados%20experimentais%0A%0A%20%20%20%20%3E%20Marcos%20Duarte%2C%20Renato%20Naville%20Watanabe%3Cbr%3E%0A%20%20%20%20%3E%20%5BLaborat%C3%B3rio%20de%20Biomec%C3%A2nica%20e%20Controle%20Motor%5D(https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2F)%3Cbr%3E%0A%20%20%20%20%3E%20Universidade%20Federal%20do%20ABC%2C%20Brasil%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Como%20usar%20este%20guia%0A%0A%20%20%20%20Um%20sistema%20de%20captura%20de%20movimento%20entrega%2C%20para%20cada%20marcador%20e%20em%20cada%20quadro%2C%20tr%C3%AAs%20n%C3%BAmeros%3A%20as%20coordenadas%20X%2C%20Y%20e%20Z%20no%20laborat%C3%B3rio.%20Com%2028%20marcadores%20e%20364%20quadros%20s%C3%A3o%20mais%20de%20trinta%20mil%20n%C3%BAmeros%2C%20e%20nenhum%20deles%20diz%20se%20a%20coxa%20est%C3%A1%20flexionada%20ou%20para%20onde%20o%20p%C3%A9%20aponta.%20Para%20isso%2C%20cada%20segmento%20do%20corpo%20precisa%20de%20um%20sistema%20de%20coordenadas%20pr%C3%B3prio%2C%20uma%20origem%20e%20tr%C3%AAs%20versores%20que%20se%20movem%20com%20ele%2C%20e%20esses%20versores%20precisam%20apontar%20para%20dire%C3%A7%C3%B5es%20que%20tenham%20sentido%20anat%C3%B4mico.%0A%0A%20%20%20%20Este%20notebook%20constr%C3%B3i%20os%20sistemas%20de%20coordenadas%20anat%C3%B4micos%20da%20pelve%2C%20do%20p%C3%A9%2C%20da%20perna%20e%20da%20coxa%20direitos%20de%20uma%20pessoa%20andando%2C%20seguindo%20a%20conven%C3%A7%C3%A3o%20do%20projeto%20%5BVAKHUM%5D(https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fcourses%2Frefs%2FVAKHUM.pdf).%20No%20caminho%2C%20aparecem%20os%20problemas%20que%20surgem%20com%20dados%20reais%3A%20um%20laborat%C3%B3rio%20cujos%20eixos%20n%C3%A3o%20s%C3%A3o%20o%20que%20parecem%2C%20um%20centro%20articular%20em%20que%20n%C3%A3o%20se%20pode%20colocar%20um%20marcador%2C%20e%20a%20pergunta%20de%20sempre%2C%20se%20a%20base%20constru%C3%ADda%20%C3%A9%20mesmo%20ortonormal%20e%20dextr%C3%B3gira.%0A%0A%20%20%20%20Leia%20em%20ordem%20e%20execute%20cada%20c%C3%A9lula%20quando%20chegar%20a%20ela.%20Onde%20houver%20um%20**Desafio**%20ou%20**Perguntas%20norteadoras**%2C%20pare%20e%20responda%20num%20rascunho%20antes%20de%20seguir.%20V%C3%A1rias%20delas%20pedem%20que%20voc%C3%AA%20preveja%20um%20n%C3%BAmero%20*antes*%20de%20o%20c%C3%B3digo%20imprimi-lo.%20Fa%C3%A7a%20a%20previs%C3%A3o%3B%20um%20palpite%20errado%20que%20o%20c%C3%B3digo%20corrige%20ensina%20mais%20do%20que%20um%20certo.%20Os%20**Exerc%C3%ADcios**%20t%C3%AAm%20solu%C3%A7%C3%B5es%20recolhidas%20logo%20abaixo%3A%20abra%20uma%20solu%C3%A7%C3%A3o%20s%C3%B3%20depois%20de%20ter%20a%20sua%20resposta.%0A%0A%20%20%20%20Voc%C3%AA%20vai%20precisar%20das%20opera%C3%A7%C3%B5es%20com%20vetores%20de%20%5BScalar%20and%20vector%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fscalar_vector.py)%20(norma%2C%20produto%20escalar%20e%20produto%20vetorial)%20e%20da%20constru%C3%A7%C3%A3o%20de%20uma%20base%20a%20partir%20de%20tr%C3%AAs%20marcadores%2C%20de%20%5BDetermination%20of%20a%20coordinate%20system%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fcoordinate_system.py).%0A%0A%20%20%20%20**Desafio%200.**%20Coloque%20as%20m%C3%A3os%20na%20cintura%20e%20procure%2C%20com%20os%20dedos%2C%20as%20duas%20espinhas%20il%C3%ADacas%20%C3%A2ntero-superiores%2C%20as%20sali%C3%AAncias%20%C3%B3sseas%20na%20frente%20da%20pelve.%20Agora%20aponte%20onde%20voc%C3%AA%20acha%20que%20fica%20o%20centro%20da%20articula%C3%A7%C3%A3o%20do%20seu%20quadril%2C%20a%20cabe%C3%A7a%20do%20f%C3%AAmur.%20Fica%20abaixo%20da%20espinha%3F%20Para%20dentro%20ou%20para%20fora%20dela%3F%20Quantos%20cent%C3%ADmetros%3F%20Anote%3B%20a%20se%C3%A7%C3%A3o%20da%20coxa%20vai%20calcular%20essa%20posi%C3%A7%C3%A3o.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Perguntas%20norteadoras%200.**%0A%0A%20%20%20%201.%20Por%20que%20um%20segmento%20precisa%20de%20pelo%20menos%20tr%C3%AAs%20marcadores%20n%C3%A3o%20colineares%20para%20ter%20sua%20orienta%C3%A7%C3%A3o%20definida%3F%0A%20%20%20%202.%20Com%20tr%C3%AAs%20marcadores%20d%C3%A1%20para%20construir%20muitas%20bases%20diferentes.%20Quem%20decide%20qual%20delas%20%C3%A9%20%22a%22%20base%20da%20coxa%2C%20e%20para%20onde%20aponta%20cada%20eixo%3F%0A%20%20%20%203.%20O%20centro%20da%20articula%C3%A7%C3%A3o%20do%20quadril%20est%C3%A1%20dentro%20do%20corpo.%20Como%20us%C3%A1-lo%20para%20definir%20a%20coxa%2C%20se%20n%C3%A3o%20podemos%20colocar%20um%20marcador%20nele%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Configura%C3%A7%C3%A3o%20do%20Python%0A%0A%20%20%20%20O%20pandas%20l%C3%AA%20o%20arquivo%2C%20o%20NumPy%20faz%20as%20contas%20e%20o%20Matplotlib%20desenha%20as%20figuras.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20from%20notebook_resources%20import%20repo_file%0A%20%20%20%20except%20ModuleNotFoundError%20as%20_error%3A%0A%20%20%20%20%20%20%20%20if%20_error.name%20!%3D%20%22notebook_resources%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%0A%20%20%20%20%20%20%20%20raise%20ModuleNotFoundError(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22This%20notebook%20needs%20notebook_resources.py.%20Download%20it%20from%3A%5Cn%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22https%3A%2F%2Fraw.githubusercontent.com%2FBMClab%2FBMC%2Fmaster%2Ffunctions%2Fnotebook_resources.py%5Cn%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Save%20it%20in%20the%20same%20folder%20as%20this%20notebook%2C%20then%20rerun%20this%20cell.%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22notebook_resources%22%2C%0A%20%20%20%20%20%20%20%20)%20from%20None%0A%20%20%20%20return%20(repo_file%2C)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20return%20np%2C%20pd%2C%20plt%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Duas%20fun%C3%A7%C3%B5es%20v%C3%A3o%20ser%20usadas%20em%20todas%20as%20se%C3%A7%C3%B5es%3A%20%60check_basis%60%20verifica%20se%20tr%C3%AAs%20versores%2C%20dados%20quadro%20a%20quadro%2C%20formam%20uma%20base%20ortonormal%20e%20dextr%C3%B3gira%2C%20e%20%60plot_basis%60%20desenha%20os%20marcadores%20de%20um%20segmento%20e%20a%20sua%20base%20num%20instante.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20check_basis(e1%2C%20e2%2C%20e3)%3A%0A%20%20%20%20%22%22%22Check%2C%20frame%20by%20frame%2C%20that%20e1%2C%20e2%2C%20e3%20(one%20row%20per%20frame)%20form%20a%20right-handed%20orthonormal%20basis.%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20norms%20%3D%20all(np.allclose(np.linalg.norm(e%2C%20axis%3D1)%2C%201)%20for%20e%20in%20(e1%2C%20e2%2C%20e3))%0A%20%20%20%20orthogonal%20%3D%20all(%0A%20%20%20%20%20%20%20%20np.allclose(np.sum(a%20*%20b%2C%20axis%3D1)%2C%200)%0A%20%20%20%20%20%20%20%20for%20a%2C%20b%20in%20((e1%2C%20e2)%2C%20(e1%2C%20e3)%2C%20(e2%2C%20e3))%0A%20%20%20%20)%0A%20%20%20%20det%20%3D%20np.linalg.det(np.stack((e1%2C%20e2%2C%20e3)%2C%20axis%3D1))%0A%20%20%20%20print(f%22Versores%20de%20norma%201%3A%20%7Bnorms%7D%22)%0A%20%20%20%20print(f%22Versores%20ortogonais%20entre%20si%3A%20%7Borthogonal%7D%22)%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20f%22Determinante%20de%20%5Be1%3B%20e2%3B%20e3%5D%3A%20de%20%7Bdet.min()%3A.4f%7D%20a%20%7Bdet.max()%3A.4f%7D%20(dextr%C3%B3gira%3A%20%7Bbool(np.allclose(det%2C%201))%7D)%22%0A%20%20%20%20)%0A%0A%0A%40app.function%0Adef%20plot_basis(%0A%20%20%20%20origin%2C%0A%20%20%20%20basis%2C%0A%20%20%20%20markers%2C%0A%20%20%20%20labels%2C%0A%20%20%20%20axis_names%3D(%22x%22%2C%20%22y%22%2C%20%22z%22)%2C%0A%20%20%20%20ax%3DNone%2C%0A%20%20%20%20length%3D0.12%2C%0A%20%20%20%20azim%3D35%2C%0A)%3A%0A%20%20%20%20%22%22%22Draw%20markers%20and%20a%20basis%20(versors%20in%20the%20rows)%20at%20%60origin%60%2C%20in%20the%20laboratory%2C%20with%20Y%20upwards.%0A%0A%20%20%20%20If%20%60ax%60%20is%20given%2C%20draw%20on%20it%20and%20leave%20its%20limits%20alone%3B%20otherwise%20create%20a%20figure.%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20new_figure%20%3D%20ax%20is%20None%0A%20%20%20%20if%20new_figure%3A%0A%20%20%20%20%20%20%20%20ax%20%3D%20plt.figure(figsize%3D(6%2C%206)).add_subplot(projection%3D%223d%22)%0A%20%20%20%20origin%2C%20basis%2C%20markers%20%3D%20(%0A%20%20%20%20%20%20%20%20np.asarray(origin)%2C%0A%20%20%20%20%20%20%20%20np.asarray(basis)%2C%0A%20%20%20%20%20%20%20%20np.atleast_2d(markers)%2C%0A%20%20%20%20)%0A%20%20%20%20ax.scatter(*markers.T%2C%20s%3D40%2C%20color%3D%22gold%22%2C%20edgecolors%3D%22k%22%2C%20depthshade%3DFalse)%0A%20%20%20%20for%20p%2C%20label%20in%20zip(markers%2C%20labels)%3A%0A%20%20%20%20%20%20%20%20ax.text(*p%2C%20f%22%20%20%7Blabel%7D%22%2C%20fontsize%3D9)%0A%20%20%20%20for%20e%2C%20name%2C%20color%20in%20zip(%0A%20%20%20%20%20%20%20%20basis%2C%20axis_names%2C%20%5B%22tab%3Ared%22%2C%20%22tab%3Agreen%22%2C%20%22tab%3Ablue%22%5D%0A%20%20%20%20)%3A%0A%20%20%20%20%20%20%20%20ax.quiver(%0A%20%20%20%20%20%20%20%20%20%20%20%20*origin%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20*(length%20*%20e)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dcolor%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20linewidth%3D2.5%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arrow_length_ratio%3D0.15%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20ax.text(%0A%20%20%20%20%20%20%20%20%20%20%20%20*(origin%20%2B%201.2%20*%20length%20*%20e)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dcolor%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fontsize%3D12%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fontweight%3D%22bold%22%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20if%20new_figure%3A%0A%20%20%20%20%20%20%20%20equal_axes(ax%2C%20np.vstack((markers%2C%20origin%2C%20origin%20%2B%20length%20*%20basis)))%0A%20%20%20%20%20%20%20%20ax.view_init(elev%3D15%2C%20azim%3Dazim%2C%20vertical_axis%3D%22y%22)%0A%20%20%20%20return%20ax%0A%0A%0A%40app.function%0Adef%20equal_axes(ax%2C%20points%2C%20margin%3D0.05)%3A%0A%20%20%20%20%22%22%22Give%20a%203D%20axes%20the%20same%20scale%20on%20X%2C%20Y%20and%20Z%2C%20enclosing%20%60points%60%20(one%20per%20row).%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20points%20%3D%20np.asarray(points)%0A%20%20%20%20center%20%3D%20(points.max(axis%3D0)%20%2B%20points.min(axis%3D0))%20%2F%202%0A%20%20%20%20half%20%3D%20(points.max(axis%3D0)%20-%20points.min(axis%3D0)).max()%20%2F%202%20%2B%20margin%0A%20%20%20%20ax.set_xlim(center%5B0%5D%20-%20half%2C%20center%5B0%5D%20%2B%20half)%0A%20%20%20%20ax.set_ylim(center%5B1%5D%20-%20half%2C%20center%5B1%5D%20%2B%20half)%0A%20%20%20%20ax.set_zlim(center%5B2%5D%20-%20half%2C%20center%5B2%5D%20%2B%20half)%0A%20%20%20%20ax.set_box_aspect((1%2C%201%2C%201))%0A%20%20%20%20ax.set_xlabel(%22X%20%5Bm%5D%22)%0A%20%20%20%20ax.set_ylabel(%22Y%20%5Bm%5D%22)%0A%20%20%20%20ax.set_zlabel(%22Z%20%5Bm%5D%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Leitura%20do%20arquivo%20e%20pr%C3%A9-processamento%0A%0A%20%20%20%20O%20arquivo%20%60.trc%60%20%C3%A9%20texto%20separado%20por%20tabula%C3%A7%C3%B5es.%20Depois%20de%20tr%C3%AAs%20linhas%20de%20cabe%C3%A7alho%20v%C3%AAm%20duas%20linhas%20de%20r%C3%B3tulos%3A%20os%20nomes%20dos%20marcadores%2C%20cada%20um%20ocupando%20tr%C3%AAs%20colunas%2C%20e%20os%20nomes%20das%20coordenadas.%20A%20c%C3%A9lula%20abaixo%20junta%20as%20duas%20numa%20%C3%BAnica%20linha%20de%20nomes%2C%20como%20%60RASISX%60%2C%20%60RASISY%60%20e%20%60RASISZ%60%2C%20descarta%20a%20coluna%20do%20n%C3%BAmero%20do%20quadro%20e%20uma%20coluna%20vazia%20no%20fim%2C%20e%20converte%20as%20coordenadas%20de%20mil%C3%ADmetros%20para%20metros%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20pd%2C%20repo_file)%3A%0A%20%20%20%20_path%20%3D%20mo.notebook_dir()%20%2F%20%22..%22%20%2F%20%22data%22%20%2F%20%22walk1.trc%22%0A%20%20%20%20if%20not%20_path.exists()%3A%20%20%23%20e.g.%2C%20on%20molab%2C%20where%20only%20the%20notebook%20is%20available%0A%20%20%20%20%20%20%20%20_path%20%3D%20repo_file(%22data%2Fwalk1.trc%22)%0A%20%20%20%20data_trc%20%3D%20pd.read_csv(_path%2C%20skiprows%3D3%2C%20sep%3D%22%5Ct%22)%0A%20%20%20%20_cols%20%3D%20list(data_trc.columns)%0A%20%20%20%20_cols%20%3D%20%5B_col.replace(%22.%22%2C%20%22%22)%20for%20_col%20in%20_cols%5D%0A%20%20%20%20for%20_i%20in%20range(2%2C%20len(_cols)%20-%203%2C%203)%3A%0A%20%20%20%20%20%20%20%20_marca%20%3D%20_cols%5B_i%5D%0A%20%20%20%20%20%20%20%20_cols%5B_i%5D%20%3D%20_marca%20%2B%20%22X%22%0A%20%20%20%20%20%20%20%20_cols%5B_i%20%2B%201%5D%20%3D%20_marca%20%2B%20%22Y%22%0A%20%20%20%20%20%20%20%20_cols%5B_i%20%2B%202%5D%20%3D%20_marca%20%2B%20%22Z%22%0A%0A%20%20%20%20_cols%20%3D%20%5B_c.upper()%20for%20_c%20in%20_cols%5D%0A%20%20%20%20data_trc.columns%20%3D%20_cols%0A%20%20%20%20data_trc%20%3D%20data_trc.drop(0%2C%20axis%3D0)%0A%20%20%20%20data_trc%20%3D%20data_trc.drop(data_trc.columns%5B%5B0%2C%20-1%5D%5D%2C%20axis%3D1)%0A%20%20%20%20data_trc%20%3D%20data_trc.astype(float)%0A%20%20%20%20data_trc.iloc%5B%3A%2C%201%3A%5D%20%3D%20data_trc.iloc%5B%3A%2C%201%3A%5D.values%20%2F%201000%20%20%23%20mm%20to%20m%0A%20%20%20%20print(list(data_trc.columns))%0A%20%20%20%20data_trc%0A%20%20%20%20return%20(data_trc%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Para%20onde%20aponta%20cada%20eixo%20do%20laborat%C3%B3rio%3F%0A%0A%20%20%20%20A%20conven%C3%A7%C3%A3o%20VAKHUM%2C%20como%20a%20da%20Sociedade%20Internacional%20de%20Biomec%C3%A2nica%20(ISB)%2C%20usa%20no%20laborat%C3%B3rio%20o%20eixo%20%24%5Cmathbf%7BY%7D%24%20vertical%20e%20para%20cima%2C%20%24%5Cmathbf%7BX%7D%24%20horizontal%20e%20para%20a%20frente%2C%20na%20dire%C3%A7%C3%A3o%20da%20progress%C3%A3o%2C%20e%20%24%5Cmathbf%7BZ%7D%24%20horizontal%20e%20para%20a%20direita.%20Com%20%24%5Cmathbf%7BX%7D%24%20para%20a%20frente%20e%20%24%5Cmathbf%7BY%7D%24%20para%20cima%2C%20um%20sistema%20dextr%C3%B3giro%20*exige*%20%24%5Cmathbf%7BZ%7D%24%20para%20a%20direita%3A%20%24%5Chat%7B%5Cmathbf%7Bk%7D%7D%20%3D%20%5Chat%7B%5Cmathbf%7Bi%7D%7D%20%5Ctimes%20%5Chat%7B%5Cmathbf%7Bj%7D%7D%24.%0A%0A%20%20%20%20Mas%20os%20eixos%20de%20um%20laborat%C3%B3rio%20s%C3%A3o%20definidos%20na%20calibra%C3%A7%C3%A3o%20do%20sistema%20de%20captura%2C%20e%20nada%20garante%20que%20sigam%20a%20conven%C3%A7%C3%A3o.%20Antes%20de%20construir%20qualquer%20base%2C%20vale%20perguntar%20aos%20dados.%0A%0A%20%20%20%20**Antes%20de%20executar%20a%20pr%C3%B3xima%20c%C3%A9lula**%2C%20preveja%3A%20a%20espinha%20il%C3%ADaca%20direita%2C%20%60RASIS%60%2C%20deve%20ter%20a%20coordenada%20%24Z%24%20maior%20ou%20menor%20que%20a%20esquerda%2C%20%60LASIS%60%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data_trc)%3A%0A%20%20%20%20_asis%20%3D%20(%0A%20%20%20%20%20%20%20%20data_trc%5B%5B%22RASISX%22%2C%20%22RASISY%22%2C%20%22RASISZ%22%5D%5D.values%0A%20%20%20%20%20%20%20%20-%20data_trc%5B%5B%22LASISX%22%2C%20%22LASISY%22%2C%20%22LASISZ%22%5D%5D.values%0A%20%20%20%20)%0A%20%20%20%20_travel%20%3D%20data_trc%5B%5B%22RASISX%22%2C%20%22RASISY%22%2C%20%22RASISZ%22%5D%5D.values%5B%5B0%2C%20-1%5D%5D%0A%20%20%20%20print(%22RASIS%20-%20LASIS%2C%20m%C3%A9dia%20no%20ensaio%20%5Bm%5D%3A%22%2C%20_asis.mean(axis%3D0).round(3))%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%22Deslocamento%20da%20RASIS%20do%20primeiro%20ao%20%C3%BAltimo%20quadro%20%5Bm%5D%3A%22%2C%0A%20%20%20%20%20%20%20%20(_travel%5B1%5D%20-%20_travel%5B0%5D).round(3)%2C%0A%20%20%20%20)%0A%20%20%20%20print(%22Altura%20m%C3%A9dia%20da%20RASIS%20%5Bm%5D%3A%22%2C%20data_trc%5B%22RASISY%22%5D.mean().round(3))%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20A%20pessoa%20anda%202%2C86%20m%20no%20sentido%20positivo%20de%20%24%5Cmathbf%7BX%7D%24%2C%20e%20a%20espinha%20il%C3%ADaca%20est%C3%A1%20a%20cerca%20de%201%20m%20de%20altura%20em%20%24%5Cmathbf%7BY%7D%24%3A%20at%C3%A9%20aqui%2C%20tudo%20conforme%20a%20conven%C3%A7%C3%A3o.%20Mas%20a%20espinha%20direita%20est%C3%A1%2023%20cm%20*abaixo*%20da%20esquerda%20em%20%24Z%24.%20O%20eixo%20%24%5Cmathbf%7BZ%7D%24%20deste%20laborat%C3%B3rio%20aponta%20para%20a%20*esquerda*%20da%20pessoa%2C%20e%20com%20%24%5Cmathbf%7BX%7D%24%20para%20a%20frente%20e%20%24%5Cmathbf%7BY%7D%24%20para%20cima%20isso%20faz%20dele%20um%20sistema%20**lev%C3%B3giro**.%0A%0A%20%20%20%20Isso%20importa%20porque%20o%20produto%20vetorial%20%C3%A9%20definido%20pelas%20coordenadas%3A%20num%20sistema%20lev%C3%B3giro%2C%20%24%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%5Ctimes%20%5Cvec%7B%5Cmathbf%7Bb%7D%7D%24%20calculado%20com%20os%20n%C3%BAmeros%20aponta%20para%20o%20lado%20oposto%20ao%20que%20a%20regra%20da%20m%C3%A3o%20direita%20indicaria.%20Toda%20a%20constru%C3%A7%C3%A3o%20das%20bases%20a%20seguir%20depende%20de%20produtos%20vetoriais%2C%20e%20a%20matriz%20de%20rota%C3%A7%C3%A3o%2C%20os%20%C3%A2ngulos%20de%20Cardan%20e%20a%20velocidade%20angular%20dependem%20de%20bases%20dextr%C3%B3giras.%0A%0A%20%20%20%20A%20solu%C3%A7%C3%A3o%20mais%20simples%20%C3%A9%20corrigir%20os%20dados%20uma%20vez%2C%20logo%20na%20entrada%3A%20trocar%20o%20sinal%20de%20todas%20as%20coordenadas%20%24Z%24.%20Isso%20espelha%20o%20laborat%C3%B3rio%2C%20e%20o%20novo%20%24%5Cmathbf%7BZ%7D%24%20aponta%20para%20a%20direita%2C%20como%20na%20conven%C3%A7%C3%A3o.%20Daqui%20em%20diante%2C%20%60data%60%20%C3%A9%20o%20laborat%C3%B3rio%20dextr%C3%B3giro%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data_trc)%3A%0A%20%20%20%20data%20%3D%20data_trc.copy()%0A%20%20%20%20_z_columns%20%3D%20%5B_col%20for%20_col%20in%20data.columns%20if%20_col.endswith(%22Z%22)%5D%0A%20%20%20%20data%5B_z_columns%5D%20%3D%20-data%5B_z_columns%5D%20%20%23%20Z%20to%20the%20right%3A%20a%20right-handed%20laboratory%0A%20%20%20%20t%20%3D%20data%5B%22TIME%22%5D.values%0A%20%20%20%20return%20data%2C%20t%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Pelve%0A%0A%20%20%20%20**Planos%20anat%C3%B4micos%20da%20pelve**%20(VAKHUM)%0A%0A%20%20%20%20-%20**Plano%20quase-transverso**%3A%20definido%20pelas%20espinhas%20il%C3%ADacas%20%C3%A2ntero-superiores%20direita%20e%20esquerda%20(**rasis**%20e%20**lasis**)%20e%20pelo%20ponto%20m%C3%A9dio%20entre%20as%20p%C3%B3stero-superiores%20(**rpsis**%20e%20**lpsis**).%0A%20%20%20%20-%20**Plano%20quase-coronal**%3A%20ortogonal%20ao%20plano%20quase-transverso%20e%20contendo%20**rasis**%20e%20**lasis**.%0A%20%20%20%20-%20**Plano%20quase-sagital**%3A%20perpendicular%20aos%20planos%20quase-transverso%20e%20quase-coronal.%0A%0A%20%20%20%20**Sistema%20de%20coordenadas%20anat%C3%B4mico%20da%20pelve**%20%24x_p%20y_p%20z_p%24%0A%0A%20%20%20%20-%20**Origem**%3A%20o%20ponto%20m%C3%A9dio%20entre%20**rasis**%20e%20**lasis**.%0A%20%20%20%20-%20**Eixo%20%24z_p%24**%3A%20ao%20longo%20da%20linha%20que%20passa%20por%20**rasis**%20e%20**lasis**%2C%20com%20sentido%20positivo%20para%20a%20direita.%0A%20%20%20%20-%20**Eixo%20%24x_p%24**%3A%20no%20plano%20quase-transverso%20e%20perpendicular%20a%20%24z_p%24%2C%20com%20sentido%20positivo%20para%20a%20frente.%0A%20%20%20%20-%20**Eixo%20%24y_p%24**%3A%20perpendicular%20a%20%24x_p%24%20e%20a%20%24z_p%24%2C%20para%20cima.%0A%0A%20%20%20%20O%20relat%C3%B3rio%20VAKHUM%20chama%20a%20origem%20de%20%24O_a%24%20e%20o%20ponto%20m%C3%A9dio%20das%20espinhas%20p%C3%B3stero-superiores%20de%20%24O_p%24.%20No%20c%C3%B3digo%2C%20a%20origem%20da%20pelve%20%C3%A9%20%60Op%60%20e%20o%20ponto%20m%C3%A9dio%20das%20p%C3%B3stero-superiores%20%C3%A9%20%60mPSIS%60.%20Os%20versores%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24%2C%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20e%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_3%24%20de%20cada%20segmento%20correspondem%20aos%20eixos%20%24x%24%2C%20%24y%24%20e%20%24z%24.%0A%0A%20%20%20%20%23%23%23%20Sele%C3%A7%C3%A3o%20das%20marcas%20necess%C3%A1rias%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data)%3A%0A%20%20%20%20RASIS%20%3D%20data%5B%5B%22RASISX%22%2C%20%22RASISY%22%2C%20%22RASISZ%22%5D%5D.values%0A%20%20%20%20LASIS%20%3D%20data%5B%5B%22LASISX%22%2C%20%22LASISY%22%2C%20%22LASISZ%22%5D%5D.values%0A%20%20%20%20RPSIS%20%3D%20data%5B%5B%22RPSISX%22%2C%20%22RPSISY%22%2C%20%22RPSISZ%22%5D%5D.values%0A%20%20%20%20LPSIS%20%3D%20data%5B%5B%22LPSISX%22%2C%20%22LPSISY%22%2C%20%22LPSISZ%22%5D%5D.values%0A%0A%20%20%20%20Op%20%3D%20(RASIS%20%2B%20LASIS)%20%2F%202%0A%20%20%20%20return%20LASIS%2C%20LPSIS%2C%20Op%2C%20RASIS%2C%20RPSIS%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Cada%20vari%C3%A1vel%20tem%20uma%20linha%20por%20quadro%20e%20uma%20coluna%20por%20coordenada%2C%20e%20todas%20as%20contas%20a%20seguir%20s%C3%A3o%20feitas%20para%20todos%20os%20quadros%20de%20uma%20vez.%0A%0A%20%20%20%20%23%23%23%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_3%24%2C%20para%20a%20direita%0A%0A%20%20%20%20O%20eixo%20%24z_p%24%20%C3%A9%20o%20mais%20f%C3%A1cil%3A%20a%20dire%C3%A7%C3%A3o%20de%20**lasis**%20para%20**rasis**%2C%20normalizada.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(LASIS%2C%20RASIS%2C%20np)%3A%0A%20%20%20%20_v3%20%3D%20RASIS%20-%20LASIS%0A%20%20%20%20e3p%20%3D%20_v3%20%2F%20np.linalg.norm(_v3%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e3p%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%2C%20para%20cima%0A%0A%20%20%20%20O%20eixo%20%24y_p%24%20%C3%A9%20perpendicular%20ao%20plano%20quase-transverso%2C%20e%20um%20vetor%20perpendicular%20a%20um%20plano%20%C3%A9%20o%20produto%20vetorial%20de%20dois%20vetores%20contidos%20nele.%20Do%20ponto%20m%C3%A9dio%20das%20p%C3%B3stero-superiores%2C%20um%20vetor%20vai%20para%20**rasis**%20(para%20a%20frente%20e%20para%20a%20direita)%20e%20outro%20para%20**lasis**%20(para%20a%20frente%20e%20para%20a%20esquerda).%20Pela%20regra%20da%20m%C3%A3o%20direita%2C%20frente-direita%20%24%5Ctimes%24%20frente-esquerda%20aponta%20para%20cima%3B%20na%20ordem%20inversa%2C%20apontaria%20para%20baixo.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(LASIS%2C%20LPSIS%2C%20RASIS%2C%20RPSIS%2C%20np)%3A%0A%20%20%20%20mPSIS%20%3D%20(RPSIS%20%2B%20LPSIS)%20%2F%202%0A%20%20%20%20_v2%20%3D%20np.cross(RASIS%20-%20mPSIS%2C%20LASIS%20-%20mPSIS)%0A%20%20%20%20e2p%20%3D%20_v2%20%2F%20np.linalg.norm(_v2%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e2p%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24%2C%20para%20a%20frente%0A%0A%20%20%20%20O%20terceiro%20versor%20completa%20a%20base%20dextr%C3%B3gira%3A%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%20%3D%20%5Chat%7B%5Cmathbf%7Be%7D%7D_2%20%5Ctimes%20%5Chat%7B%5Cmathbf%7Be%7D%7D_3%24.%20Como%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20e%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_3%24%20s%C3%A3o%20unit%C3%A1rios%20e%20perpendiculares%2C%20o%20resultado%20j%C3%A1%20%C3%A9%20unit%C3%A1rio%2C%20e%20fica%20no%20plano%20quase-transverso%2C%20perpendicular%20a%20%24z_p%24%2C%20como%20pede%20a%20defini%C3%A7%C3%A3o%20de%20%24x_p%24.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(e2p%2C%20e3p%2C%20np)%3A%0A%20%20%20%20e1p%20%3D%20np.cross(e2p%2C%20e3p)%0A%20%20%20%20return%20(e1p%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Verificar%20normas%2C%20ortogonalidade%20e%20orienta%C3%A7%C3%A3o%0A%0A%20%20%20%20Uma%20base%20ortonormal%20tem%20versores%20de%20norma%201%2C%20perpendiculares%20dois%20a%20dois.%20Isso%20n%C3%A3o%20basta%3A%20uma%20base%20com%20um%20dos%20versores%20invertido%20tamb%C3%A9m%20passa%20nesses%20dois%20testes.%20A%20orienta%C3%A7%C3%A3o%20aparece%20no%20determinante%20da%20matriz%20com%20os%20versores%20nas%20linhas%2C%20%24%2B1%24%20para%20uma%20base%20dextr%C3%B3gira%20e%20%24-1%24%20para%20uma%20lev%C3%B3gira.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(e1p%2C%20e2p%2C%20e3p)%3A%0A%20%20%20%20check_basis(e1p%2C%20e2p%2C%20e3p)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Visualizar%20a%20base%0A%0A%20%20%20%20No%20primeiro%20quadro%2C%20com%20a%20base%20desenhada%20na%20origem%20da%20pelve%20e%20as%20quatro%20espinhas%20il%C3%ADacas%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(LASIS%2C%20LPSIS%2C%20Op%2C%20RASIS%2C%20RPSIS%2C%20e1p%2C%20e2p%2C%20e3p%2C%20np%2C%20plt)%3A%0A%20%20%20%20_markers%20%3D%20np.vstack((RASIS%5B0%5D%2C%20LASIS%5B0%5D%2C%20RPSIS%5B0%5D%2C%20LPSIS%5B0%5D))%0A%20%20%20%20_basis%20%3D%20np.vstack((e1p%5B0%5D%2C%20e2p%5B0%5D%2C%20e3p%5B0%5D))%0A%0A%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20Op%5B0%5D%2C%0A%20%20%20%20%20%20%20%20_basis%2C%0A%20%20%20%20%20%20%20%20_markers%2C%0A%20%20%20%20%20%20%20%20%5B%22RASIS%22%2C%20%22LASIS%22%2C%20%22RPSIS%22%2C%20%22LPSIS%22%5D%2C%0A%20%20%20%20%20%20%20%20axis_names%3D(%22xp%22%2C%20%22yp%22%2C%20%22zp%22)%2C%0A%20%20%20%20)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20eixo%20%24x_p%24%20aponta%20para%20a%20frente%20mas%20um%20pouco%20para%20baixo%3A%20as%20espinhas%20%C3%A2ntero-superiores%20est%C3%A3o%20mais%20baixas%20que%20as%20p%C3%B3stero-superiores%2C%20a%20inclina%C3%A7%C3%A3o%20anterior%20da%20pelve.%0A%0A%20%20%20%20**Exerc%C3%ADcio%201.**%20Qual%20%C3%A9%20o%20%C3%A2ngulo%20de%20inclina%C3%A7%C3%A3o%20anterior%20da%20pelve%20no%20primeiro%20quadro%2C%20o%20%C3%A2ngulo%20entre%20%24x_p%24%20e%20o%20plano%20horizontal%3F%20Quanto%20ele%20varia%20durante%20o%20ensaio%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(e1p%2C%20mo%2C%20np)%3A%0A%20%20%20%20_tilt%20%3D%20np.degrees(np.arcsin(-e1p%5B%3A%2C%201%5D))%0A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Solu%C3%A7%C3%A3o%20do%20Exerc%C3%ADcio%201%22%3A%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20O%20plano%20horizontal%20%C3%A9%20perpendicular%20a%20%24%5Cmathbf%7B%7BY%7D%7D%24%2C%20ent%C3%A3o%20o%20%C3%A2ngulo%20entre%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_1%24%20e%20esse%20plano%20%C3%A9%20o%20complemento%20do%20%C3%A2ngulo%20entre%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_1%24%20e%20%24%5Chat%7B%7B%5Cmathbf%7B%7Bj%7D%7D%7D%7D%24.%20Com%20o%20sinal%20positivo%20quando%20%24x_p%24%20aponta%20para%20baixo%2C%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Ctheta_%7B%7Btilt%7D%7D%20%3D%20%5Carcsin%5Cleft(-%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_1%5Ccdot%5Chat%7B%7B%5Cmathbf%7B%7Bj%7D%7D%7D%7D%5Cright)%20%3D%20%5Carcsin%5Cleft(-e_%7B%7B1Y%7D%7D%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20No%20primeiro%20quadro%2C%20%24e_%7B%7B1Y%7D%7D%20%3D%20%7Be1p%5B0%2C%201%5D%3A.3f%7D%24%20e%20a%20inclina%C3%A7%C3%A3o%20anterior%20%C3%A9%20de%20%24%7B_tilt%5B0%5D%3A.1f%7D%5E%5Ccirc%24.%20Durante%20o%20ensaio%20ela%20fica%20entre%20%24%7B_tilt.min()%3A.1f%7D%5E%5Ccirc%24%20e%20%24%7B_tilt.max()%3A.1f%7D%5E%5Ccirc%24%3A%20a%20pelve%20oscila%20uns%20poucos%20graus%20a%20cada%20passo.%20Esse%20%C3%A2ngulo%20depende%20da%20conven%C3%A7%C3%A3o%2C%20porque%20o%20plano%20quase-transverso%20passa%20pelas%20espinhas%20il%C3%ADacas%2C%20e%20n%C3%A3o%20por%20algum%20plano%20%22verdadeiramente%22%20horizontal%20da%20pelve%3B%20outra%20conven%C3%A7%C3%A3o%20daria%20outro%20n%C3%BAmero%20para%20a%20mesma%20postura.%0A%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exerc%C3%ADcio%202.**%20Suponha%20que%20voc%C3%AA%20n%C3%A3o%20tivesse%20corrigido%20o%20eixo%20%24%5Cmathbf%7BZ%7D%24%20do%20laborat%C3%B3rio%20e%20tivesse%20aplicado%20exatamente%20as%20mesmas%20opera%C3%A7%C3%B5es%20aos%20dados%20originais%2C%20%60data_trc%60.%20Para%20onde%20apontaria%20cada%20versor%3F%20Qual%20seria%20o%20determinante%3F%20E%20se%2C%20para%20fazer%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20apontar%20para%20cima%2C%20voc%C3%AA%20trocasse%20a%20ordem%20do%20produto%20vetorial%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(data_trc%2C%20mo%2C%20np)%3A%0A%20%20%20%20def%20_versor(v)%3A%0A%20%20%20%20%20%20%20%20return%20v%20%2F%20np.linalg.norm(v%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%0A%20%20%20%20def%20_marker(name)%3A%0A%20%20%20%20%20%20%20%20return%20data_trc%5B%5Bname%20%2B%20_c%20for%20_c%20in%20%22XYZ%22%5D%5D.values%0A%0A%20%20%20%20_ra%2C%20_la%20%3D%20_marker(%22RASIS%22)%2C%20_marker(%22LASIS%22)%0A%20%20%20%20_mp%20%3D%20(_marker(%22RPSIS%22)%20%2B%20_marker(%22LPSIS%22))%20%2F%202%0A%20%20%20%20_e3%20%3D%20_versor(_ra%20-%20_la)%0A%20%20%20%20_e2%20%3D%20_versor(np.cross(_ra%20-%20_mp%2C%20_la%20-%20_mp))%20%20%23%20same%20order%20as%20above%0A%20%20%20%20_e1%20%3D%20np.cross(_e2%2C%20_e3)%0A%20%20%20%20_det%20%3D%20np.linalg.det(np.stack((_e1%2C%20_e2%2C%20_e3)%2C%20axis%3D1))%0A%20%20%20%20_e2b%20%3D%20_versor(np.cross(_la%20-%20_mp%2C%20_ra%20-%20_mp))%20%20%23%20order%20swapped%0A%20%20%20%20_e1b%20%3D%20np.cross(_e3%2C%20_e2b)%20%20%23%20to%20keep%20e1%20forward%0A%20%20%20%20_detb%20%3D%20np.linalg.det(np.stack((_e1b%2C%20_e2b%2C%20_e3)%2C%20axis%3D1))%0A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Solu%C3%A7%C3%A3o%20do%20Exerc%C3%ADcio%202%22%3A%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20Com%20as%20mesmas%20opera%C3%A7%C3%B5es%20sobre%20os%20dados%20originais%2C%20no%20primeiro%20quadro%2C%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_1%20%3D%20%5B%7B_e1%5B0%2C%200%5D%3A.3f%7D%2C%5C%3B%20%7B_e1%5B0%2C%201%5D%3A.3f%7D%2C%5C%3B%20%7B_e1%5B0%2C%202%5D%3A.3f%7D%5D%2C%20%5Cquad%0A%20%20%20%20%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_2%20%3D%20%5B%7B_e2%5B0%2C%200%5D%3A.3f%7D%2C%5C%3B%20%7B_e2%5B0%2C%201%5D%3A.3f%7D%2C%5C%3B%20%7B_e2%5B0%2C%202%5D%3A.3f%7D%5D%2C%20%5Cquad%0A%20%20%20%20%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_3%20%3D%20%5B%7B_e3%5B0%2C%200%5D%3A.3f%7D%2C%5C%3B%20%7B_e3%5B0%2C%201%5D%3A.3f%7D%2C%5C%3B%20%7B_e3%5B0%2C%202%5D%3A.3f%7D%5D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20e%20o%20determinante%20%C3%A9%20%24%7B_det%5B0%5D%3A.0f%7D%24.%20Numericamente%20a%20base%20%C3%A9%20dextr%C3%B3gira%2C%20mas%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_2%24%20aponta%20para%20*baixo*%3A%20o%20produto%20vetorial%20calculado%20com%20as%20coordenadas%20de%20um%20laborat%C3%B3rio%20lev%C3%B3giro%20d%C3%A1%20o%20sentido%20oposto%20ao%20da%20regra%20da%20m%C3%A3o%20direita.%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_3%24%20continua%20apontando%20para%20a%20direita%20da%20pessoa%2C%20porque%20%C3%A9%20uma%20diferen%C3%A7a%2C%20n%C3%A3o%20um%20produto%20vetorial%2C%20e%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_1%24%20ainda%20aponta%20para%20a%20frente%2C%20porque%20os%20dois%20sinais%20trocados%20se%20compensam.%0A%0A%20%20%20%20Trocando%20a%20ordem%20dos%20produtos%20vetoriais%20para%20que%20cada%20eixo%20aponte%20para%20o%20lado%20anat%C3%B4mico%20certo%2C%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_2%24%20volta%20a%20apontar%20para%20cima%2C%20mas%20o%20determinante%20passa%20a%20ser%20%24%7B_detb%5B0%5D%3A.0f%7D%24%3A%20a%20base%20%C3%A9%20lev%C3%B3gira.%20As%20setas%20estariam%20certas%20num%20desenho%2C%20mas%20os%20n%C3%BAmeros%20descreveriam%20uma%20reflex%C3%A3o%2C%20e%20n%C3%A3o%20uma%20rota%C3%A7%C3%A3o.%20Num%20laborat%C3%B3rio%20lev%C3%B3giro%20n%C3%A3o%20h%C3%A1%20como%20ter%20as%20duas%20coisas%3B%20por%20isso%20corrigimos%20o%20laborat%C3%B3rio%20antes%20de%20tudo.%0A%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20P%C3%A9%0A%0A%20%20%20%20**Planos%20anat%C3%B4micos%20do%20p%C3%A9**%20(VAKHUM)%0A%0A%20%20%20%20-%20**Plano%20quase-transverso**%3A%20definido%20pelo%20calc%C3%A2neo%20(**ca**)%20e%20pelas%20cabe%C3%A7as%20do%20primeiro%20e%20do%20quinto%20metatarsos%20(**fm**%20e%20**vm**).%0A%20%20%20%20-%20**Plano%20quase-sagital**%3A%20ortogonal%20ao%20plano%20quase-transverso%20e%20contendo%20**ca**%20e%20a%20cabe%C3%A7a%20do%20segundo%20metatarso%20(**sm**).%0A%20%20%20%20-%20**Plano%20quase-coronal**%3A%20perpendicular%20aos%20planos%20quase-transverso%20e%20quase-sagital.%0A%0A%20%20%20%20**Sistema%20de%20coordenadas%20anat%C3%B4mico%20do%20p%C3%A9**%20%24x_f%20y_f%20z_f%24%0A%0A%20%20%20%20-%20**Origem**%20%24O_f%24%3A%20o%20ponto%20**ca**.%0A%20%20%20%20-%20**Eixo%20%24y_f%24**%3A%20a%20interse%C3%A7%C3%A3o%20dos%20planos%20quase-coronal%20e%20quase-sagital%2C%20para%20cima.%0A%20%20%20%20-%20**Eixo%20%24z_f%24**%3A%20no%20plano%20quase-transverso%20e%20perpendicular%20a%20%24y_f%24%2C%20para%20a%20direita.%0A%20%20%20%20-%20**Eixo%20%24x_f%24**%3A%20perpendicular%20a%20%24y_f%24%20e%20a%20%24z_f%24%2C%20para%20a%20frente.%0A%0A%20%20%20%20No%20arquivo%2C%20**ca**%20%C3%A9%20o%20marcador%20do%20calcanhar%20(%60R.Heel%60)%2C%20e%20**fm**%2C%20**sm**%20e%20**vm**%20s%C3%A3o%20%60R.MT1%60%2C%20%60R.MT2%60%20e%20%60R.MT5%60%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data)%3A%0A%20%20%20%20CA%20%3D%20data%5B%5B%22RHEELX%22%2C%20%22RHEELY%22%2C%20%22RHEELZ%22%5D%5D.values%0A%20%20%20%20FM%20%3D%20data%5B%5B%22RMT1X%22%2C%20%22RMT1Y%22%2C%20%22RMT1Z%22%5D%5D.values%0A%20%20%20%20SM%20%3D%20data%5B%5B%22RMT2X%22%2C%20%22RMT2Y%22%2C%20%22RMT2Z%22%5D%5D.values%0A%20%20%20%20VM%20%3D%20data%5B%5B%22RMT5X%22%2C%20%22RMT5Y%22%2C%20%22RMT5Z%22%5D%5D.values%0A%0A%20%20%20%20Of%20%3D%20CA%0A%20%20%20%20return%20CA%2C%20FM%2C%20Of%2C%20SM%2C%20VM%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20A%20interse%C3%A7%C3%A3o%20dos%20planos%20quase-coronal%20e%20quase-sagital%20%C3%A9%20uma%20reta%20perpendicular%20a%20ambos%20e%2C%20como%20os%20dois%20s%C3%A3o%20perpendiculares%20ao%20quase-transverso%2C%20%C3%A9%20a%20normal%20do%20plano%20quase-transverso.%20No%20p%C3%A9%20direito%2C%20o%20quinto%20metatarso%20fica%20%C3%A0%20direita%20e%20o%20primeiro%20%C3%A0%20esquerda%2C%20ent%C3%A3o%20%24(%5Cmathbf%7Bvm%7D%20-%20%5Cmathbf%7Bca%7D)%20%5Ctimes%20(%5Cmathbf%7Bfm%7D%20-%20%5Cmathbf%7Bca%7D)%24%20aponta%20para%20cima%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(CA%2C%20FM%2C%20VM%2C%20np)%3A%0A%20%20%20%20_v2%20%3D%20np.cross(VM%20-%20CA%2C%20FM%20-%20CA)%0A%20%20%20%20e2f%20%3D%20_v2%20%2F%20np.linalg.norm(_v2%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e2f%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20eixo%20%24z_f%24%20%C3%A9%20perpendicular%20ao%20plano%20quase-sagital%2C%20que%20cont%C3%A9m%20%24%5Cmathbf%7Bsm%7D%20-%20%5Cmathbf%7Bca%7D%24%20(para%20a%20frente)%20e%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20(para%20cima)%3B%20frente%20%24%5Ctimes%24%20cima%20aponta%20para%20a%20direita%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(CA%2C%20SM%2C%20e2f%2C%20np)%3A%0A%20%20%20%20_v3%20%3D%20np.cross(SM%20-%20CA%2C%20e2f)%0A%20%20%20%20e3f%20%3D%20_v3%20%2F%20np.linalg.norm(_v3%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e3f%2C)%0A%0A%0A%40app.cell%0Adef%20_(e2f%2C%20e3f%2C%20np)%3A%0A%20%20%20%20e1f%20%3D%20np.cross(e2f%2C%20e3f)%0A%0A%20%20%20%20check_basis(e1f%2C%20e2f%2C%20e3f)%0A%20%20%20%20return%20(e1f%2C)%0A%0A%0A%40app.cell%0Adef%20_(CA%2C%20FM%2C%20Of%2C%20SM%2C%20VM%2C%20e1f%2C%20e2f%2C%20e3f%2C%20np%2C%20plt)%3A%0A%20%20%20%20_markers%20%3D%20np.vstack((CA%5B0%5D%2C%20FM%5B0%5D%2C%20SM%5B0%5D%2C%20VM%5B0%5D))%0A%20%20%20%20_basis%20%3D%20np.vstack((e1f%5B0%5D%2C%20e2f%5B0%5D%2C%20e3f%5B0%5D))%0A%0A%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20Of%5B0%5D%2C%0A%20%20%20%20%20%20%20%20_basis%2C%0A%20%20%20%20%20%20%20%20_markers%2C%0A%20%20%20%20%20%20%20%20%5B%22CA%22%2C%20%22FM%22%2C%20%22SM%22%2C%20%22VM%22%5D%2C%0A%20%20%20%20%20%20%20%20axis_names%3D(%22xf%22%2C%20%22yf%22%2C%20%22zf%22)%2C%0A%20%20%20%20%20%20%20%20length%3D0.08%2C%0A%20%20%20%20)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Desafio%201.**%20A%20conven%C3%A7%C3%A3o%20pede%20a%20crista%20superior%20do%20calc%C3%A2neo%2C%20mas%20o%20marcador%20%60R.Heel%60%20costuma%20ficar%20na%20face%20posterior%20do%20calcanhar%2C%20alguns%20cent%C3%ADmetros%20abaixo.%20Desloque%20%60CA%60%202%20cm%20para%20cima%20(some%20%240%7B%2C%7D02%24%20%C3%A0%20coordenada%20%24Y%24)%20e%20construa%20a%20base%20do%20p%C3%A9%20de%20novo.%20De%20quantos%20graus%20muda%20o%20eixo%20%24x_f%24%3F%20Qual%20dos%20tr%C3%AAs%20eixos%20muda%20menos%2C%20e%20por%20qu%C3%AA%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Perna%0A%0A%20%20%20%20**Planos%20anat%C3%B4micos%20da%20perna**%20(VAKHUM)%0A%0A%20%20%20%20-%20**Plano%20quase-coronal**%3A%20definido%20pelo%20%C3%A1pice%20da%20cabe%C3%A7a%20da%20f%C3%ADbula%20(**hf**)%2C%20pelo%20mal%C3%A9olo%20lateral%20(**lm**)%20e%20pelo%20ponto%20m%C3%A9dio%20%24O_s%24%20entre%20os%20mal%C3%A9olos%20lateral%20e%20medial%20(**lm**%20e%20**mm**).%0A%20%20%20%20-%20**Plano%20quase-sagital**%3A%20ortogonal%20ao%20plano%20quase-coronal%20e%20contendo%20%24O_s%24%20e%20a%20tuberosidade%20da%20t%C3%ADbia%20(**tt**).%0A%20%20%20%20-%20**Plano%20quase-transverso**%3A%20perpendicular%20aos%20planos%20quase-coronal%20e%20quase-sagital.%0A%0A%20%20%20%20**Sistema%20de%20coordenadas%20anat%C3%B4mico%20da%20perna**%20%24x_s%20y_s%20z_s%24%0A%0A%20%20%20%20-%20**Origem**%20%24O_s%24%3A%20o%20ponto%20m%C3%A9dio%20entre%20**lm**%20e%20**mm**.%0A%20%20%20%20-%20**Eixo%20%24y_s%24**%3A%20a%20interse%C3%A7%C3%A3o%20dos%20planos%20quase-coronal%20e%20quase-sagital%2C%20para%20cima.%0A%20%20%20%20-%20**Eixo%20%24z_s%24**%3A%20no%20plano%20quase-coronal%20e%20perpendicular%20a%20%24y_s%24%2C%20para%20a%20direita.%0A%20%20%20%20-%20**Eixo%20%24x_s%24**%3A%20perpendicular%20a%20%24y_s%24%20e%20a%20%24z_s%24%2C%20para%20a%20frente.%0A%0A%20%20%20%20No%20arquivo%2C%20**hf**%20%C3%A9%20%60R.HF%60%2C%20**tt**%20%C3%A9%20%60R.TT%60%2C%20**lm**%20%C3%A9%20%60R.Ankle%60%20e%20**mm**%20%C3%A9%20%60R.Ankle.Medial%60%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data)%3A%0A%20%20%20%20HF%20%3D%20data%5B%5B%22RHFX%22%2C%20%22RHFY%22%2C%20%22RHFZ%22%5D%5D.values%0A%20%20%20%20TT%20%3D%20data%5B%5B%22RTTX%22%2C%20%22RTTY%22%2C%20%22RTTZ%22%5D%5D.values%0A%20%20%20%20MM%20%3D%20data%5B%5B%22RANKLEMEDIALX%22%2C%20%22RANKLEMEDIALY%22%2C%20%22RANKLEMEDIALZ%22%5D%5D.values%0A%20%20%20%20ML%20%3D%20data%5B%5B%22RANKLEX%22%2C%20%22RANKLEY%22%2C%20%22RANKLEZ%22%5D%5D.values%0A%0A%20%20%20%20Os%20%3D%20(MM%20%2B%20ML)%20%2F%202%0A%20%20%20%20return%20HF%2C%20ML%2C%20MM%2C%20Os%2C%20TT%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20eixo%20%24x_s%24%20%C3%A9%20a%20normal%20do%20plano%20quase-coronal.%20Da%20cabe%C3%A7a%20da%20f%C3%ADbula%2C%20um%20vetor%20desce%20at%C3%A9%20o%20mal%C3%A9olo%20lateral%20e%20outro%20desce%20at%C3%A9%20o%20medial%2C%20%C3%A0%20esquerda%20dele%20na%20perna%20direita%3B%20para%20baixo%20%24%5Ctimes%24%20(para%20baixo%20e%20para%20a%20esquerda)%20aponta%20para%20a%20frente.%20O%20c%C3%B3digo%20usa%20os%20dois%20mal%C3%A9olos%20em%20vez%20de%20**lm**%20e%20%24O_s%24%3A%20%C3%A9%20o%20mesmo%20plano%20(Exerc%C3%ADcio%203).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(HF%2C%20ML%2C%20MM%2C%20np)%3A%0A%20%20%20%20_v1%20%3D%20np.cross(ML%20-%20HF%2C%20MM%20-%20HF)%0A%20%20%20%20e1s%20%3D%20_v1%20%2F%20np.linalg.norm(_v1%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e1s%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20eixo%20%24z_s%24%20%C3%A9%20a%20normal%20do%20plano%20quase-sagital%2C%20que%20cont%C3%A9m%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24%20(para%20a%20frente)%20e%20%24%5Cmathbf%7Btt%7D%20-%20O_s%24%20(para%20cima)%3B%20frente%20%24%5Ctimes%24%20cima%20aponta%20para%20a%20direita.%20Por%20fim%2C%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%20%3D%20%5Chat%7B%5Cmathbf%7Be%7D%7D_3%20%5Ctimes%20%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24%20fica%20nos%20dois%20planos%2C%20a%20interse%C3%A7%C3%A3o%20que%20a%20defini%C3%A7%C3%A3o%20pede%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Os%2C%20TT%2C%20e1s%2C%20np)%3A%0A%20%20%20%20_v3%20%3D%20np.cross(e1s%2C%20TT%20-%20Os)%0A%20%20%20%20e3s%20%3D%20_v3%20%2F%20np.linalg.norm(_v3%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e3s%2C)%0A%0A%0A%40app.cell%0Adef%20_(e1s%2C%20e3s%2C%20np)%3A%0A%20%20%20%20e2s%20%3D%20np.cross(e3s%2C%20e1s)%0A%0A%20%20%20%20check_basis(e1s%2C%20e2s%2C%20e3s)%0A%20%20%20%20return%20(e2s%2C)%0A%0A%0A%40app.cell%0Adef%20_(HF%2C%20ML%2C%20MM%2C%20Os%2C%20TT%2C%20e1s%2C%20e2s%2C%20e3s%2C%20np%2C%20plt)%3A%0A%20%20%20%20_markers%20%3D%20np.vstack((HF%5B0%5D%2C%20TT%5B0%5D%2C%20MM%5B0%5D%2C%20ML%5B0%5D))%0A%20%20%20%20_basis%20%3D%20np.vstack((e1s%5B0%5D%2C%20e2s%5B0%5D%2C%20e3s%5B0%5D))%0A%0A%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20Os%5B0%5D%2C%20_basis%2C%20_markers%2C%20%5B%22HF%22%2C%20%22TT%22%2C%20%22MM%22%2C%20%22ML%22%5D%2C%20axis_names%3D(%22xs%22%2C%20%22ys%22%2C%20%22zs%22)%0A%20%20%20%20)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exerc%C3%ADcio%203.**%20A%20conven%C3%A7%C3%A3o%20define%20o%20plano%20quase-coronal%20da%20perna%20por%20**hf**%2C%20**lm**%20e%20%24O_s%24%2C%20e%20o%20c%C3%B3digo%20usa%20**hf**%2C%20**lm**%20e%20**mm**.%20Mostre%20que%20os%20dois%20trios%20de%20pontos%20definem%20o%20mesmo%20plano%20e%20que%20as%20normais%20%24(%5Cmathbf%7Blm%7D%20-%20%5Cmathbf%7Bhf%7D)%20%5Ctimes%20(O_s%20-%20%5Cmathbf%7Bhf%7D)%24%20e%20%24(%5Cmathbf%7Blm%7D%20-%20%5Cmathbf%7Bhf%7D)%20%5Ctimes%20(%5Cmathbf%7Bmm%7D%20-%20%5Cmathbf%7Bhf%7D)%24%20t%C3%AAm%20a%20mesma%20dire%C3%A7%C3%A3o%20e%20o%20mesmo%20sentido.%0A%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Solu%C3%A7%C3%A3o%20do%20Exerc%C3%ADcio%203%0A%0A%20%20%20%20Chame%20%24%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%3D%20%5Cmathbf%7Blm%7D%20-%20%5Cmathbf%7Bhf%7D%24%20e%20%24%5Cvec%7B%5Cmathbf%7Bb%7D%7D%20%3D%20%5Cmathbf%7Bmm%7D%20-%20%5Cmathbf%7Bhf%7D%24.%20Como%20%24O_s%20%3D%20(%5Cmathbf%7Blm%7D%20%2B%20%5Cmathbf%7Bmm%7D)%2F2%24%2C%0A%0A%20%20%20%20%24%24%0A%20%20%20%20O_s%20-%20%5Cmathbf%7Bhf%7D%20%3D%20%5Cfrac%7B(%5Cmathbf%7Blm%7D%20-%20%5Cmathbf%7Bhf%7D)%20%2B%20(%5Cmathbf%7Bmm%7D%20-%20%5Cmathbf%7Bhf%7D)%7D%7B2%7D%20%3D%20%5Cfrac%7B%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%2B%20%5Cvec%7B%5Cmathbf%7Bb%7D%7D%7D%7B2%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20e%2C%20como%20%24%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%5Ctimes%20%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%3D%20%5Cvec%7B%5Cmathbf%7B0%7D%7D%24%2C%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%5Ctimes%20%5Cfrac%7B%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%2B%20%5Cvec%7B%5Cmathbf%7Bb%7D%7D%7D%7B2%7D%20%3D%20%5Cfrac%7B1%7D%7B2%7D%5C%2C%5Cvec%7B%5Cmathbf%7Ba%7D%7D%20%5Ctimes%20%5Cvec%7B%5Cmathbf%7Bb%7D%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20As%20duas%20normais%20diferem%20s%C3%B3%20pelo%20fator%20positivo%20%241%2F2%24%2C%20que%20desaparece%20na%20normaliza%C3%A7%C3%A3o%3A%20mesma%20dire%C3%A7%C3%A3o%2C%20mesmo%20sentido%2C%20mesmo%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24.%20Geometricamente%2C%20%24O_s%24%20est%C3%A1%20no%20segmento%20entre%20**lm**%20e%20**mm**%2C%20ent%C3%A3o%20qualquer%20plano%20que%20contenha%20**lm**%20e%20**mm**%20cont%C3%A9m%20%24O_s%24.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Coxa%0A%0A%20%20%20%20**Planos%20anat%C3%B4micos%20da%20coxa**%20(VAKHUM)%0A%0A%20%20%20%20-%20**Plano%20quase-coronal**%3A%20definido%20pelos%20epic%C3%B4ndilos%20medial%20e%20lateral%20do%20f%C3%AAmur%20(**me**%20e%20**le**)%20e%20pelo%20centro%20da%20cabe%C3%A7a%20do%20f%C3%AAmur%20(**fh**).%0A%20%20%20%20-%20**Plano%20quase-sagital**%3A%20ortogonal%20ao%20plano%20quase-coronal%20e%20contendo%20%24O_t%24%20e%20**fh**.%0A%20%20%20%20-%20**Plano%20quase-transverso**%3A%20perpendicular%20aos%20planos%20quase-coronal%20e%20quase-sagital.%0A%0A%20%20%20%20**Sistema%20de%20coordenadas%20anat%C3%B4mico%20da%20coxa**%20%24x_t%20y_t%20z_t%24%0A%0A%20%20%20%20-%20**Origem**%20%24O_t%24%3A%20o%20ponto%20m%C3%A9dio%20entre%20**le**%20e%20**me**.%0A%20%20%20%20-%20**Eixo%20%24y_t%24**%3A%20ao%20longo%20da%20linha%20que%20passa%20por%20%24O_t%24%20e%20**fh**%2C%20para%20cima.%0A%20%20%20%20-%20**Eixo%20%24z_t%24**%3A%20no%20plano%20quase-coronal%20e%20perpendicular%20a%20%24y_t%24%2C%20para%20a%20direita.%0A%20%20%20%20-%20**Eixo%20%24x_t%24**%3A%20perpendicular%20a%20%24y_t%24%20e%20a%20%24z_t%24%2C%20para%20a%20frente.%0A%0A%20%20%20%20%23%23%23%20Onde%20est%C3%A1%20a%20cabe%C3%A7a%20do%20f%C3%AAmur%3F%0A%0A%20%20%20%20Para%20determinar%20o%20sistema%20de%20coordenadas%20anat%C3%B4mico%20usando%20a%20conven%C3%A7%C3%A3o%20VAKHUM%20%C3%A9%20necess%C3%A1ria%20a%20posi%C3%A7%C3%A3o%20da%20cabe%C3%A7a%20do%20f%C3%AAmur%20(FH)%2C%20que%20%C3%A9%20o%20centro%20articular%20do%20quadril%20(HJC).%20Obviamente%20n%C3%A3o%20%C3%A9%20poss%C3%ADvel%20colocar%20um%20marcador%20na%20cabe%C3%A7a%20do%20f%C3%AAmur%20para%20rastrear%20sua%20posi%C3%A7%C3%A3o%2C%20porque%20%C3%A9%20uma%20regi%C3%A3o%20dentro%20do%20corpo.%0A%0A%20%20%20%20O%20que%20usualmente%20se%20faz%20%C3%A9%20usar%20algum%20m%C3%A9todo%20indireto%20para%20estimar%20esta%20posi%C3%A7%C3%A3o%2C%20por%20exemplo%20a%20partir%20de%20equa%C3%A7%C3%B5es%20de%20regress%C3%A3o%20que%20relacionam%20as%20dimens%C3%B5es%20da%20pelve%20com%20a%20posi%C3%A7%C3%A3o%20da%20cabe%C3%A7a%20do%20f%C3%AAmur.%20Estas%20equa%C3%A7%C3%B5es%20de%20regress%C3%A3o%20s%C3%A3o%20geralmente%20obtidas%20do%20estudo%20de%20uma%20amostra%20da%20popula%C3%A7%C3%A3o%2C%20em%20que%20a%20posi%C3%A7%C3%A3o%20da%20cabe%C3%A7a%20do%20f%C3%AAmur%20%C3%A9%20medida%20por%20algum%20outro%20m%C3%A9todo%20(por%20exemplo%2C%20raio-X).%0A%0A%20%20%20%20Para%20estimar%20a%20posi%C3%A7%C3%A3o%20da%20cabe%C3%A7a%20do%20f%C3%AAmur%2C%20vamos%20utilizar%20o%20m%C3%A9todo%20proposto%20por%20Bell%2C%20Brand%20e%20Pedersen%20(1989)%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cvec%7B%5Cmathbf%7Br%7D%7D_%7BFH%7D%20%3D%20%5Cvec%7B%5Cmathbf%7Br%7D%7D_%7BO_p%7D%20%2B%20d_%7BASIS%7D%5Cleft(-0%7B%2C%7D19%5C%2C%5Chat%7B%5Cmathbf%7Be%7D%7D_1%20-%200%7B%2C%7D30%5C%2C%5Chat%7B%5Cmathbf%7Be%7D%7D_2%20%2B%200%7B%2C%7D36%5C%2C%5Chat%7B%5Cmathbf%7Be%7D%7D_3%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20onde%20%24O_p%24%20%C3%A9%20a%20origem%20do%20sistema%20de%20coordenadas%20da%20pelve%2C%20%24d_%7BASIS%7D%24%20%C3%A9%20a%20dist%C3%A2ncia%20entre%20as%20duas%20espinhas%20il%C3%ADacas%20%C3%A2ntero-superiores%2C%20e%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_1%24%2C%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20e%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_3%24%20s%C3%A3o%20os%20versores%20da%20pelve%3A%20o%20centro%20do%20quadril%20direito%20fica%2019%25%20de%20%24d_%7BASIS%7D%24%20para%20tr%C3%A1s%2C%2030%25%20para%20baixo%20e%2036%25%20para%20a%20direita%20da%20origem%20da%20pelve.%0A%0A%20%20%20%20Note%20que%20os%20coeficientes%20s%C3%A3o%20componentes%20na%20base%20*da%20pelve*%2C%20e%20n%C3%A3o%20do%20laborat%C3%B3rio%3A%20a%20pelve%20inclina%2C%20gira%20e%20oscila%2C%20e%20o%20quadril%20vai%20com%20ela.%0A%0A%20%20%20%20**Antes%20de%20executar%20a%20pr%C3%B3xima%20c%C3%A9lula**%2C%20volte%20ao%20Desafio%200%3A%20a%20que%20dist%C3%A2ncia%20da%20espinha%20il%C3%ADaca%20direita%20voc%C3%AA%20esperava%20encontrar%20o%20centro%20do%20quadril%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(LASIS%2C%20Op%2C%20RASIS%2C%20e1p%2C%20e2p%2C%20e3p%2C%20np)%3A%0A%20%20%20%20dASIS%20%3D%20np.linalg.norm(RASIS%20-%20LASIS%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20FH%20%3D%20Op%20%2B%20dASIS%20*%20(-0.19%20*%20e1p%20-%200.30%20*%20e2p%20%2B%200.36%20*%20e3p)%0A%0A%20%20%20%20_d%20%3D%20FH%5B0%5D%20-%20RASIS%5B0%5D%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20f%22Dist%C3%A2ncia%20entre%20as%20espinhas%20il%C3%ADacas%20%C3%A2ntero-superiores%3A%20%7BdASIS%5B0%2C%200%5D%20*%20100%3A.1f%7D%20cm%22%0A%20%20%20%20)%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%22FH%20em%20rela%C3%A7%C3%A3o%20%C3%A0%20RASIS%2C%20na%20base%20da%20pelve%20%5Bcm%5D%3A%22%2C%0A%20%20%20%20%20%20%20%20f%22%7B_d%20%40%20e1p%5B0%5D%20*%20100%3A.1f%7D%20(frente)%2C%20%7B_d%20%40%20e2p%5B0%5D%20*%20100%3A.1f%7D%20(cima)%2C%20%7B_d%20%40%20e3p%5B0%5D%20*%20100%3A.1f%7D%20(direita)%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%20FH%2C%20dASIS%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20centro%20do%20quadril%20fica%204%2C4%20cm%20atr%C3%A1s%20da%20espinha%20il%C3%ADaca%2C%206%2C9%20cm%20abaixo%20dela%20e%203%2C2%20cm%20para%20dentro%20(os%2036%25%20para%20a%20direita%20da%20origem%20deixam%20o%20quadril%2014%25%20de%20%24d_%7BASIS%7D%24%20para%20dentro%20da%20espinha%2C%20que%20est%C3%A1%20a%2050%25).%20Vamos%20checar%20nossa%20estimativa%20do%20marcador%20FH%20plotando%20junto%20com%20o%20sistema%20de%20coordenadas%20da%20pelve%20e%20o%20marcador%20do%20troc%C3%A2nter%20maior%2C%20%60R.GTR%60%2C%20a%20sali%C3%AAncia%20%C3%B3ssea%20do%20f%C3%AAmur%20que%20se%20palpa%20na%20lateral%20do%20quadril%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(FH%2C%20LASIS%2C%20LPSIS%2C%20Op%2C%20RASIS%2C%20RPSIS%2C%20data%2C%20e1p%2C%20e2p%2C%20e3p%2C%20np%2C%20plt)%3A%0A%20%20%20%20GTR%20%3D%20data%5B%5B%22RGTRX%22%2C%20%22RGTRY%22%2C%20%22RGTRZ%22%5D%5D.values%0A%20%20%20%20_markers%20%3D%20np.vstack((RASIS%5B0%5D%2C%20LASIS%5B0%5D%2C%20RPSIS%5B0%5D%2C%20LPSIS%5B0%5D%2C%20FH%5B0%5D%2C%20GTR%5B0%5D))%0A%20%20%20%20_basis%20%3D%20np.vstack((e1p%5B0%5D%2C%20e2p%5B0%5D%2C%20e3p%5B0%5D))%0A%0A%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20Op%5B0%5D%2C%0A%20%20%20%20%20%20%20%20_basis%2C%0A%20%20%20%20%20%20%20%20_markers%2C%0A%20%20%20%20%20%20%20%20%5B%22RASIS%22%2C%20%22LASIS%22%2C%20%22RPSIS%22%2C%20%22LPSIS%22%2C%20%22FH%22%2C%20%22GTR%22%5D%2C%0A%20%20%20%20%20%20%20%20axis_names%3D(%22xp%22%2C%20%22yp%22%2C%20%22zp%22)%2C%0A%20%20%20%20%20%20%20%20azim%3D60%2C%0A%20%20%20%20)%0A%20%20%20%20plt.show()%0A%0A%20%20%20%20_d%20%3D%20GTR%20-%20FH%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%22GTR%20em%20rela%C3%A7%C3%A3o%20a%20FH%20no%20primeiro%20quadro%2C%20na%20base%20da%20pelve%20%5Bcm%5D%3A%22%2C%0A%20%20%20%20%20%20%20%20f%22%7B_d%5B0%5D%20%40%20e1p%5B0%5D%20*%20100%3A.1f%7D%20(frente)%2C%20%7B_d%5B0%5D%20%40%20e2p%5B0%5D%20*%20100%3A.1f%7D%20(cima)%2C%20%7B_d%5B0%5D%20%40%20e3p%5B0%5D%20*%20100%3A.1f%7D%20(direita)%22%2C%0A%20%20%20%20)%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20f%22Dist%C3%A2ncia%20FH-GTR%20no%20ensaio%3A%20de%20%7Bnp.linalg.norm(_d%2C%20axis%3D1).min()%20*%20100%3A.1f%7D%20a%20%7Bnp.linalg.norm(_d%2C%20axis%3D1).max()%20*%20100%3A.1f%7D%20cm%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20centro%20estimado%20fica%209%2C3%20cm%20para%20dentro%20do%20marcador%20do%20troc%C3%A2nter%20maior%2C%20um%20pouco%20acima%20dele%20e%20%C3%A0%20frente%3A%20onde%20a%20cabe%C3%A7a%20do%20f%C3%AAmur%20deveria%20estar%2C%20na%20ponta%20do%20colo%20do%20f%C3%AAmur%2C%20que%20sobe%20e%20vai%20para%20dentro%20e%20para%20a%20frente%20a%20partir%20do%20troc%C3%A2nter.%20A%20dist%C3%A2ncia%20entre%20os%20dois%20varia%20menos%20de%201%20cm%20durante%20o%20ensaio%2C%20embora%20um%20seja%20calculado%20a%20partir%20da%20pelve%20e%20o%20outro%20seja%20um%20marcador%20na%20pele%20da%20coxa.%0A%0A%20%20%20%20Uma%20regress%C3%A3o%20como%20essa%20erra%2C%20para%20uma%20pessoa%20em%20particular%2C%20por%20um%20ou%20dois%20cent%C3%ADmetros%2C%20e%20m%C3%A9todos%20mais%20recentes%2C%20baseados%20em%20resson%C3%A2ncia%20magn%C3%A9tica%20(Harrington%20et%20al.%2C%202007)%20ou%20no%20movimento%20da%20coxa%20em%20rela%C3%A7%C3%A3o%20%C3%A0%20pelve%20(m%C3%A9todos%20funcionais)%2C%20erram%20menos.%20Mas%2C%20para%20a%20dire%C3%A7%C3%A3o%20do%20eixo%20longo%20da%20coxa%2C%20de%2045%20cm%2C%20um%20cent%C3%ADmetro%20corresponde%20a%20pouco%20mais%20de%20um%20grau.%0A%0A%20%20%20%20Agora%20a%20coxa.%20No%20arquivo%2C%20**le**%20%C3%A9%20%60R.Knee%60%20e%20**me**%20%C3%A9%20%60R.Knee.Medial%60%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(data)%3A%0A%20%20%20%20LE%20%3D%20data%5B%5B%22RKNEEX%22%2C%20%22RKNEEY%22%2C%20%22RKNEEZ%22%5D%5D.values%0A%20%20%20%20ME%20%3D%20data%5B%5B%22RKNEEMEDIALX%22%2C%20%22RKNEEMEDIALY%22%2C%20%22RKNEEMEDIALZ%22%5D%5D.values%0A%0A%20%20%20%20Ot%20%3D%20(LE%20%2B%20ME)%20%2F%202%0A%20%20%20%20return%20LE%2C%20ME%2C%20Ot%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20O%20eixo%20%24y_t%24%20vai%20da%20origem%20at%C3%A9%20a%20cabe%C3%A7a%20do%20f%C3%AAmur.%20O%20eixo%20%24x_t%24%20%C3%A9%20a%20normal%20do%20plano%20quase-coronal%2C%20que%20cont%C3%A9m%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20(para%20cima)%20e%20%24%5Cmathbf%7Ble%7D%20-%20O_t%24%20(para%20a%20direita%2C%20na%20coxa%20direita)%3B%20cima%20%24%5Ctimes%24%20direita%20aponta%20para%20a%20frente.%20E%20%24%5Chat%7B%5Cmathbf%7Be%7D%7D_3%20%3D%20%5Chat%7B%5Cmathbf%7Be%7D%7D_1%20%5Ctimes%20%5Chat%7B%5Cmathbf%7Be%7D%7D_2%24%20fica%20no%20plano%20quase-coronal%2C%20perpendicular%20a%20%24y_t%24%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(FH%2C%20Ot%2C%20np)%3A%0A%20%20%20%20_v2%20%3D%20FH%20-%20Ot%0A%20%20%20%20e2t%20%3D%20_v2%20%2F%20np.linalg.norm(_v2%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e2t%2C)%0A%0A%0A%40app.cell%0Adef%20_(LE%2C%20Ot%2C%20e2t%2C%20np)%3A%0A%20%20%20%20_v1%20%3D%20np.cross(e2t%2C%20LE%20-%20Ot)%0A%20%20%20%20e1t%20%3D%20_v1%20%2F%20np.linalg.norm(_v1%2C%20axis%3D1%2C%20keepdims%3DTrue)%0A%20%20%20%20return%20(e1t%2C)%0A%0A%0A%40app.cell%0Adef%20_(e1t%2C%20e2t%2C%20np)%3A%0A%20%20%20%20e3t%20%3D%20np.cross(e1t%2C%20e2t)%0A%0A%20%20%20%20check_basis(e1t%2C%20e2t%2C%20e3t)%0A%20%20%20%20return%20(e3t%2C)%0A%0A%0A%40app.cell%0Adef%20_(FH%2C%20LE%2C%20ME%2C%20Ot%2C%20e1t%2C%20e2t%2C%20e3t%2C%20np%2C%20plt)%3A%0A%20%20%20%20_markers%20%3D%20np.vstack((LE%5B0%5D%2C%20ME%5B0%5D%2C%20FH%5B0%5D))%0A%20%20%20%20_basis%20%3D%20np.vstack((e1t%5B0%5D%2C%20e2t%5B0%5D%2C%20e3t%5B0%5D))%0A%0A%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20Ot%5B0%5D%2C%0A%20%20%20%20%20%20%20%20_basis%2C%0A%20%20%20%20%20%20%20%20_markers%2C%0A%20%20%20%20%20%20%20%20%5B%22LE%22%2C%20%22ME%22%2C%20%22FH%22%5D%2C%0A%20%20%20%20%20%20%20%20axis_names%3D(%22xt%22%2C%20%22yt%22%2C%20%22zt%22)%2C%0A%20%20%20%20%20%20%20%20length%3D0.15%2C%0A%20%20%20%20)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exerc%C3%ADcio%204.**%20Uma%20forma%20comum%20de%20errar%20a%20equa%C3%A7%C3%A3o%20de%20Bell%2C%20Brand%20e%20Pedersen%20%C3%A9%20somar%20os%20coeficientes%20diretamente%20%C3%A0s%20coordenadas%20do%20laborat%C3%B3rio%2C%20%24%5Cvec%7B%5Cmathbf%7Br%7D%7D_%7BFH%7D%20%3D%20%5Cvec%7B%5Cmathbf%7Br%7D%7D_%7BO_p%7D%20%2B%20d_%7BASIS%7D%5C%2C%5B-0%7B%2C%7D19%2C%5C%3B%20-0%7B%2C%7D30%2C%5C%3B%200%7B%2C%7D36%5D%24.%20Calcule%20FH%20assim%20e%20compare%20com%20a%20estimativa%20feita%20com%20a%20base%20da%20pelve.%20De%20quanto%20%C3%A9%20a%20diferen%C3%A7a%3F%20Em%20que%20situa%C3%A7%C3%A3o%20ela%20seria%20grande%3F%0A%0A%20%20%20%20**Desafio%202.**%20O%20f%C3%AAmur%20%C3%A9%20r%C3%ADgido%2C%20mas%20calcule%20a%20dist%C3%A2ncia%20entre%20FH%20e%20%24O_t%24%2C%20o%20comprimento%20da%20coxa%2C%20em%20todos%20os%20quadros%2C%20e%20fa%C3%A7a%20um%20gr%C3%A1fico%20dela%20ao%20longo%20do%20tempo.%20Ela%20%C3%A9%20constante%3F%20De%20onde%20vem%20a%20varia%C3%A7%C3%A3o%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(FH%2C%20Op%2C%20dASIS%2C%20e1p%2C%20mo%2C%20np)%3A%0A%20%20%20%20_fh_lab%20%3D%20Op%20%2B%20dASIS%20*%20np.array(%5B-0.19%2C%20-0.30%2C%200.36%5D)%0A%20%20%20%20_diff%20%3D%20np.linalg.norm(_fh_lab%20-%20FH%2C%20axis%3D1)%20*%20100%0A%20%20%20%20_heading%20%3D%20np.degrees(np.arctan2(-e1p%5B%3A%2C%202%5D%2C%20e1p%5B%3A%2C%200%5D))%0A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Solu%C3%A7%C3%A3o%20do%20Exerc%C3%ADcio%204%22%3A%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20As%20duas%20estimativas%20diferem%20em%20%24%7B_diff%5B0%5D%3A.1f%7D%24%20cm%20no%20primeiro%20quadro%20e%20em%20at%C3%A9%20%24%7B_diff.max()%3A.1f%7D%24%20cm%20no%20ensaio%20(%24%7B_diff.mean()%3A.1f%7D%24%20cm%20em%20m%C3%A9dia).%20A%20diferen%C3%A7a%20%C3%A9%20pequena%20aqui%20porque%20a%20base%20da%20pelve%20quase%20coincide%20com%20a%20do%20laborat%C3%B3rio%3A%20a%20pessoa%20anda%20ao%20longo%20de%20%24%5Cmathbf%7B%7BX%7D%7D%24%20e%2C%20no%20plano%20horizontal%2C%20a%20pelve%20gira%20s%C3%B3%20entre%20%24%7B_heading.min()%3A.1f%7D%5E%5Ccirc%24%20e%20%24%7B_heading.max()%3A.1f%7D%5E%5Ccirc%24%20em%20rela%C3%A7%C3%A3o%20a%20ele%2C%20al%C3%A9m%20de%20inclinar%20uns%20%248%5E%5Ccirc%24%20para%20a%20frente.%0A%0A%20%20%20%20Ela%20seria%20grande%20se%20a%20pessoa%20andasse%20em%20outra%20dire%C3%A7%C3%A3o.%20Andando%20ao%20longo%20de%20%24%5Cmathbf%7B%7BZ%7D%7D%24%2C%20por%20exemplo%2C%20os%2036%25%20%22para%20a%20direita%22%20no%20laborat%C3%B3rio%20cairiam%20%C3%A0%20frente%20ou%20atr%C3%A1s%20da%20pelve%2C%20e%20o%20quadril%20estimado%20ficaria%20a%20uns%20%240%7B%7B%2C%7D%7D36%5C%2Cd_%7B%7BASIS%7D%7D%5Csqrt%7B%7B2%7D%7D%20%5Capprox%20%7B0.36%20*%20np.sqrt(2)%20*%20dASIS%5B0%2C%200%5D%20*%20100%3A.0f%7D%24%20cm%20de%20onde%20deveria.%20Coeficientes%20de%20regress%C3%A3o%20como%20esses%20s%C3%A3o%20sempre%20componentes%20numa%20base%20anat%C3%B4mica.%0A%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20O%20membro%20inteiro%0A%0A%20%20%20%20Com%20as%20quatro%20bases%20calculadas%20em%20todos%20os%20quadros%2C%20podemos%20ver%20o%20membro%20inferior%20direito%20em%20qualquer%20instante%20do%20ensaio.%20Use%20os%20controles%20para%20percorrer%20o%20passo%20e%20girar%20a%20vista%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20t)%3A%0A%20%20%20%20frame_slider%20%3D%20mo.ui.slider(0%2C%20len(t)%20-%201%2C%20step%3D1%2C%20value%3D0%2C%20label%3D%22Quadro%22)%0A%20%20%20%20azim_slider%20%3D%20mo.ui.slider(%0A%20%20%20%20%20%20%20%20-180%2C%20180%2C%20step%3D5%2C%20value%3D35%2C%20label%3D%22Azimute%20da%20vista%20%5Bgraus%5D%22%0A%20%20%20%20)%0A%20%20%20%20mo.vstack(%5Bframe_slider%2C%20azim_slider%5D)%0A%20%20%20%20return%20azim_slider%2C%20frame_slider%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20CA%2C%0A%20%20%20%20FH%2C%0A%20%20%20%20FM%2C%0A%20%20%20%20HF%2C%0A%20%20%20%20LASIS%2C%0A%20%20%20%20LE%2C%0A%20%20%20%20LPSIS%2C%0A%20%20%20%20ME%2C%0A%20%20%20%20ML%2C%0A%20%20%20%20MM%2C%0A%20%20%20%20Of%2C%0A%20%20%20%20Op%2C%0A%20%20%20%20Os%2C%0A%20%20%20%20Ot%2C%0A%20%20%20%20RASIS%2C%0A%20%20%20%20RPSIS%2C%0A%20%20%20%20SM%2C%0A%20%20%20%20TT%2C%0A%20%20%20%20VM%2C%0A%20%20%20%20azim_slider%2C%0A%20%20%20%20e1f%2C%0A%20%20%20%20e1p%2C%0A%20%20%20%20e1s%2C%0A%20%20%20%20e1t%2C%0A%20%20%20%20e2f%2C%0A%20%20%20%20e2p%2C%0A%20%20%20%20e2s%2C%0A%20%20%20%20e2t%2C%0A%20%20%20%20e3f%2C%0A%20%20%20%20e3p%2C%0A%20%20%20%20e3s%2C%0A%20%20%20%20e3t%2C%0A%20%20%20%20frame_slider%2C%0A%20%20%20%20np%2C%0A%20%20%20%20plt%2C%0A%20%20%20%20t%2C%0A)%3A%0A%20%20%20%20_i%20%3D%20frame_slider.value%0A%20%20%20%20_ax%20%3D%20plt.figure(figsize%3D(7%2C%207)).add_subplot(projection%3D%223d%22)%0A%20%20%20%20_segments%20%3D%20%5B%0A%20%20%20%20%20%20%20%20(Op%2C%20(e1p%2C%20e2p%2C%20e3p)%2C%20(RASIS%2C%20LASIS%2C%20RPSIS%2C%20LPSIS%2C%20FH))%2C%0A%20%20%20%20%20%20%20%20(Ot%2C%20(e1t%2C%20e2t%2C%20e3t)%2C%20(LE%2C%20ME))%2C%0A%20%20%20%20%20%20%20%20(Os%2C%20(e1s%2C%20e2s%2C%20e3s)%2C%20(HF%2C%20TT%2C%20MM%2C%20ML))%2C%0A%20%20%20%20%20%20%20%20(Of%2C%20(e1f%2C%20e2f%2C%20e3f)%2C%20(CA%2C%20FM%2C%20SM%2C%20VM))%2C%0A%20%20%20%20%5D%0A%20%20%20%20_points%20%3D%20%5B%5D%0A%20%20%20%20for%20_origin%2C%20_basis%2C%20_markers%20in%20_segments%3A%0A%20%20%20%20%20%20%20%20_m%20%3D%20np.vstack(%5B_mk%5B_i%5D%20for%20_mk%20in%20_markers%5D)%0A%20%20%20%20%20%20%20%20plot_basis(%0A%20%20%20%20%20%20%20%20%20%20%20%20_origin%5B_i%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20np.vstack(%5B_e%5B_i%5D%20for%20_e%20in%20_basis%5D)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20_m%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20axis_names%3D(%22%22%2C%20%22%22%2C%20%22%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20ax%3D_ax%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20length%3D0.1%2C%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20_points.append(_m)%0A%20%20%20%20_chain%20%3D%20np.vstack((FH%5B_i%5D%2C%20Ot%5B_i%5D%2C%20Os%5B_i%5D%2C%20CA%5B_i%5D))%0A%20%20%20%20_ax.plot(*_chain.T%2C%20color%3D%22gray%22%2C%20linewidth%3D1.5%2C%20linestyle%3D%22--%22)%0A%20%20%20%20equal_axes(_ax%2C%20np.vstack(_points))%0A%20%20%20%20_ax.view_init(elev%3D15%2C%20azim%3Dazim_slider.value%2C%20vertical_axis%3D%22y%22)%0A%20%20%20%20_ax.set_title(f%22Membro%20inferior%20direito%2C%20t%20%3D%20%7Bt%5B_i%5D%3A.3f%7D%20s%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Os%20versores%20est%C3%A3o%20em%20vermelho%20(%24x%24%2C%20para%20a%20frente)%2C%20verde%20(%24y%24%2C%20para%20cima)%20e%20azul%20(%24z%24%2C%20para%20a%20direita)%2C%20e%20a%20linha%20tracejada%20liga%20o%20centro%20do%20quadril%2C%20a%20origem%20da%20coxa%2C%20a%20origem%20da%20perna%20e%20o%20calc%C3%A2neo.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(e1f%2C%20e1s%2C%20e2s%2C%20mo%2C%20np%2C%20t)%3A%0A%20%20%20%20_ankle%20%3D%20np.degrees(np.arctan2(np.sum(e1f%20*%20e2s%2C%20axis%3D1)%2C%20np.sum(e1f%20*%20e1s%2C%20axis%3D1)))%0A%20%20%20%20_imax%2C%20_imin%20%3D%20np.argmax(_ankle)%2C%20np.argmin(_ankle)%0A%0A%20%20%20%20mo.accordion(%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Solu%C3%A7%C3%A3o%20do%20Exerc%C3%ADcio%205%22%3A%20mo.md(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20O%20eixo%20do%20p%C3%A9%20que%20aponta%20para%20a%20frente%2C%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1f%7D%7D%24%2C%20escrito%20na%20base%20da%20perna%2C%20tem%20componentes%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1f%7D%7D%5Ccdot%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1s%7D%7D%24%20(para%20a%20frente%20da%20perna)%20e%20%24%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1f%7D%7D%5Ccdot%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B2s%7D%7D%24%20(para%20cima%2C%20ao%20longo%20da%20perna).%20Na%20dorsiflex%C3%A3o%20a%20ponta%20do%20p%C3%A9%20sobe%20em%20dire%C3%A7%C3%A3o%20%C3%A0%20perna%2C%20ent%C3%A3o%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Ctheta_%7B%7Btornozelo%7D%7D%20%3D%20%5Carctan%5Cleft(%5Cfrac%7B%7B%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1f%7D%7D%5Ccdot%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B2s%7D%7D%7D%7D%7B%7B%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1f%7D%7D%5Ccdot%5Chat%7B%7B%5Cmathbf%7B%7Be%7D%7D%7D%7D_%7B%7B1s%7D%7D%7D%7D%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20No%20ensaio%2C%20a%20maior%20dorsiflex%C3%A3o%20%C3%A9%20de%20%24%7B_ankle%5B_imax%5D%3A.1f%7D%5E%5Ccirc%24%2C%20em%20%24t%20%3D%20%7Bt%5B_imax%5D%3A.3f%7D%24%20s%2C%20e%20a%20maior%20flex%C3%A3o%20plantar%2C%20de%20%24%7B-_ankle%5B_imin%5D%3A.1f%7D%5E%5Ccirc%24%2C%20em%20%24t%20%3D%20%7Bt%5B_imin%5D%3A.3f%7D%24%20s.%0A%0A%20%20%20%20Com%20a%20pessoa%20em%20p%C3%A9%2C%20parada%2C%20o%20p%C3%A9%20e%20a%20perna%20formam%20um%20%C3%A2ngulo%20de%20cerca%20de%20%2490%5E%5Ccirc%24%2C%20mas%20os%20eixos%20anat%C3%B4micos%20n%C3%A3o%20precisam%20ser%20exatamente%20perpendiculares%3A%20o%20eixo%20%24x_f%24%20vai%20do%20calc%C3%A2neo%2C%20na%20parte%20de%20tr%C3%A1s%20e%20de%20cima%20do%20calcanhar%2C%20%C3%A0s%20cabe%C3%A7as%20dos%20metatarsos%2C%20mais%20baixas%2C%20e%20o%20eixo%20%24y_s%24%20depende%20de%20onde%20est%C3%A3o%20a%20cabe%C3%A7a%20da%20f%C3%ADbula%20e%20a%20tuberosidade%20da%20t%C3%ADbia.%20Por%20isso%2C%20em%20biomec%C3%A2nica%20%C3%A9%20comum%20subtrair%20o%20%C3%A2ngulo%20medido%20numa%20postura%20de%20refer%C3%AAncia%2C%20em%20p%C3%A9%2C%20e%20relatar%20os%20%C3%A2ngulos%20da%20marcha%20em%20rela%C3%A7%C3%A3o%20a%20ela.%0A%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Quest%C3%B5es%20de%20verifica%C3%A7%C3%A3o%0A%0A%20%20%20%20Pare%20aqui%20antes%20dos%20problemas.%0A%0A%20%20%20%201.%20Volte%20ao%20Desafio%200.%20Onde%20voc%C3%AA%20tinha%20posto%20o%20centro%20do%20quadril%2C%20e%20onde%20a%20regress%C3%A3o%20o%20p%C3%B4s%3F%0A%20%20%20%202.%20Os%20versores%20de%20uma%20base%20passaram%20nos%20testes%20de%20norma%20e%20de%20ortogonalidade.%20O%20que%20ainda%20pode%20estar%20errado%20com%20ela%3F%0A%20%20%20%203.%20Por%20que%20foi%20preciso%20olhar%20para%20os%20dados%20para%20descobrir%20para%20onde%20aponta%20o%20eixo%20%24%5Cmathbf%7BZ%7D%24%20do%20laborat%C3%B3rio%3F%20O%20que%20teria%20acontecido%20com%20as%20bases%20se%20n%C3%A3o%20tiv%C3%A9ssemos%20corrigido%20isso%3F%0A%20%20%20%204.%20Em%20cada%20segmento%2C%20um%20eixo%20foi%20obtido%20como%20normal%20de%20um%20plano%20definido%20por%20tr%C3%AAs%20marcadores.%20Que%20eixo%20foi%20esse%20na%20pelve%2C%20no%20p%C3%A9%2C%20na%20perna%20e%20na%20coxa%3F%20E%20qual%20foi%20obtido%20por%20%C3%BAltimo%2C%20como%20produto%20vetorial%20dos%20outros%20dois%3F%0A%20%20%20%205.%20Por%20que%20os%20coeficientes%20da%20equa%C3%A7%C3%A3o%20de%20Bell%2C%20Brand%20e%20Pedersen%20multiplicam%20os%20versores%20da%20pelve%2C%20e%20n%C3%A3o%20os%20do%20laborat%C3%B3rio%3F%0A%20%20%20%206.%20A%20base%20da%20coxa%20depende%20de%20um%20ponto%20estimado%2C%20a%20cabe%C3%A7a%20do%20f%C3%AAmur.%20Que%20consequ%C3%AAncias%20isso%20tem%20para%20os%20%C3%A2ngulos%20do%20quadril%20e%20do%20joelho%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Problemas%0A%0A%20%20%20%201.%20Construa%20os%20sistemas%20de%20coordenadas%20anat%C3%B4micos%20do%20p%C3%A9%2C%20da%20perna%20e%20da%20coxa%20*esquerdos*%2C%20com%20os%20marcadores%20%60L.Heel%60%2C%20%60L.MT1%60%2C%20%60L.MT2%60%2C%20%60L.MT5%60%2C%20%60L.HF%60%2C%20%60L.TT%60%2C%20%60L.Ankle%60%2C%20%60L.Ankle.Medial%60%2C%20%60L.Knee%60%20e%20%60L.Knee.Medial%60%2C%20e%20com%20o%20centro%20do%20quadril%20esquerdo%20(que%20coeficiente%20da%20equa%C3%A7%C3%A3o%20de%20Bell%2C%20Brand%20e%20Pedersen%20muda%3F).%20Os%20eixos%20%24z%24%20continuam%20apontando%20para%20a%20direita.%20Em%20quais%20produtos%20vetoriais%20%C3%A9%20preciso%20trocar%20a%20ordem%3F%20Verifique%20as%20bases%20com%20%60check_basis%60.%0A%0A%20%20%20%202.%20Harrington%20et%20al.%20(2007)%20propuseram%2C%20a%20partir%20de%20imagens%20de%20resson%C3%A2ncia%20magn%C3%A9tica%2C%20outra%20regress%C3%A3o%20para%20o%20centro%20do%20quadril%2C%20em%20mil%C3%ADmetros%20e%20na%20base%20da%20pelve%3A%20%24x%20%3D%20-0%7B%2C%7D24%5C%2CPD%20-%209%7B%2C%7D9%24%2C%20%24y%20%3D%20-0%7B%2C%7D30%5C%2CPW%20-%2010%7B%2C%7D9%24%20e%20%24z%20%3D%200%7B%2C%7D33%5C%2CPW%20%2B%207%7B%2C%7D3%24%2C%20onde%20%24PW%24%20%C3%A9%20a%20dist%C3%A2ncia%20entre%20as%20espinhas%20%C3%A2ntero-superiores%20e%20%24PD%24%20%C3%A9%20a%20dist%C3%A2ncia%20entre%20os%20pontos%20m%C3%A9dios%20das%20espinhas%20%C3%A2ntero-superiores%20e%20das%20p%C3%B3stero-superiores.%20Calcule%20o%20centro%20do%20quadril%20direito%20com%20essa%20regress%C3%A3o.%20Quanto%20ele%20difere%20da%20estimativa%20de%20Bell%2C%20Brand%20e%20Pedersen%3F%20Quanto%20muda%20a%20dire%C3%A7%C3%A3o%20do%20eixo%20%24y_t%24%20da%20coxa%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Respostas%20finais%20dos%20problemas%0A%0A%20%20%20%201.%20No%20lado%20esquerdo%2C%20o%20coeficiente%20lateral%20de%20Bell%20muda%20de%20%2B0%2C36%20para%20%E2%88%920%2C36.%20O%20eixo%20%24z%24%20continua%20dirigido%20%C3%A0%20direita%3A%20inverta%20a%20diferen%C3%A7a%20medial%2Flateral%20usada%20para%20orientar%20o%20p%C3%A9%20e%20as%20linhas%20de%20refer%C3%AAncia%20da%20perna%20e%20da%20coxa%3B%20feche%20sempre%20a%20tr%C3%ADade%20com%20%24x%5Ctimes%20y%3Dz%24.%20A%20base%20correta%20satisfaz%20%24RR%5ET%3DI%24%20e%20%24%5Cdet%20R%3D%2B1%24%3B%20espelhar%20apenas%20uma%20coluna%20produz%20uma%20reflex%C3%A3o%2C%20n%C3%A3o%20uma%20rota%C3%A7%C3%A3o.%0A%20%20%20%202.%20No%20primeiro%20quadro%2C%20centro%20direito%20de%20Harrington%20aproximadamente%20%24(%E2%88%920%2C217337%2C0%2C969077%2C0%2C451764)%24%20m.%20Diferen%C3%A7a%20para%20Bell%3A%2016%2C16%20mm%20no%20primeiro%20quadro%20e%20m%C3%A9dia%20de%2016%2C32%20mm%20no%20ensaio.%20O%20eixo%20longo%20muda%201%2C59%C2%B0%20no%20primeiro%20quadro%20e%20at%C3%A9%202%2C08%C2%B0%20no%20registro%2C%20usando%20as%20regress%C3%B5es%20e%20a%20origem%20especificadas%20no%20enunciado.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Para%20aprofundar%0A%0A%20%20%20%20-%20%5BDetermination%20of%20a%20coordinate%20system%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fcoordinate_system.py)%3A%20a%20constru%C3%A7%C3%A3o%20de%20uma%20base%20a%20partir%20de%20tr%C3%AAs%20marcadores%20e%20como%20os%20erros%20dos%20marcadores%20se%20tornam%20erros%20nos%20eixos.%0A%20%20%20%20-%20%5BFrame%20of%20reference%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Freference_frame.py)%3A%20referenciais%2C%20bases%20e%20as%20conven%C3%A7%C3%B5es%20anat%C3%B4micas%20para%20a%20dire%C3%A7%C3%A3o%20de%20cada%20eixo.%0A%20%20%20%20-%20%5BRigid-body%20transformations%20in%203D%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Ftransformation_3d.py)%3A%20matrizes%20de%20rota%C3%A7%C3%A3o%20e%20%C3%A2ngulos%20de%20Cardan%2C%20o%20pr%C3%B3ximo%20passo%20para%20descrever%20as%20articula%C3%A7%C3%B5es.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Videoaulas%20na%20Internet%0A%0A%20%20%20%20%5BLynch%20e%20Park%3A%20matrizes%20de%20rota%C3%A7%C3%A3o%5D(https%3A%2F%2Fmodernrobotics.northwestern.edu%2Fnu-gm-book-resource%2F3-2-1-rotation-matrices-part-1-of-2%2F)%20apresenta%20ortogonalidade%2C%20orienta%C3%A7%C3%A3o%20dextr%C3%B3gira%20e%20o%20significado%20das%20colunas%20da%20matriz.%20O%20v%C3%ADdeo%20est%C3%A1%20em%20ingl%C3%AAs%3B%20compare%20a%20conven%C3%A7%C3%A3o%20de%20colunas%20com%20os%20versores%20nas%20linhas%20usados%20aqui.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Refer%C3%AAncias%0A%0A%20%20%20%20-%20Bell%20AL%2C%20Brand%20RA%2C%20Pedersen%20DR%20(1989)%20Prediction%20of%20hip%20joint%20centre%20location%20from%20external%20landmarks.%20Human%20Movement%20Science%2C%208(1)%2C%203%E2%80%9316.%0A%0A%20%20%20%20-%20Cappozzo%20A%2C%20Catani%20F%2C%20Della%20Croce%20U%2C%20Leardini%20A%20(1995)%20Position%20and%20orientation%20in%20space%20of%20bones%20during%20movement%3A%20anatomical%20frame%20definition%20and%20determination.%20Clinical%20Biomechanics%2C%2010(4)%2C%20171%E2%80%93178.%0A%0A%20%20%20%20-%20Harrington%20ME%2C%20Zavatsky%20AB%2C%20Lawson%20SEM%2C%20Yuan%20Z%2C%20Theologis%20TN%20(2007)%20Prediction%20of%20the%20hip%20joint%20centre%20in%20adults%2C%20children%2C%20and%20patients%20with%20cerebral%20palsy%20based%20on%20magnetic%20resonance%20imaging.%20Journal%20of%20Biomechanics%2C%2040(3)%2C%20595%E2%80%93602.%0A%0A%20%20%20%20-%20Hilal%20I%2C%20Van%20Sint%20Jan%20S%2C%20Leardini%20A%2C%20Della%20Croce%20U.%20%5BD3.2.%20Technical%20report%20on%20data%20collection%20procedure%2C%20Annex%20I%5D(https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fcourses%2Frefs%2FVAKHUM.pdf).%20VAKHUM%20project%20(IST-1999-10954).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
8381ea3f01af1c5e2b9bf830596840ed