Você está na página 1de 83

ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO

Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP


Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 1
1. INTRODUO
1.1 MANUFATURA GIL
A introduo de mquinas-ferramentas controladas por computador h aproximadamente 40 anos,
criou a necessidade de uma representao computacional para o projeto do produto. As geraes
posteriores de tecnologia de produo avanada, tais como: mquinas DNC, sistemas de manufatura
flexvel (FMS), robs, e sistemas de transporte, criaram uma demanda por informaes cada vez
mais completas e precisas sobre o produto a ser manufaturado.
Ao mesmo tempo, alteraes sociais e econmicas em nossa sociedade e no mercado internacional
modificaram significativamente a maneira pela qual as tecnologias de produo so utilizadas. As
companhias se tornaram mais orientados ao produto, objetivando a diminuio do tempo de
produo, processos timos, fluxo de matria just-in-time, alta eficincia e flexibilidade da
utilizao da capacidade de manufatura. O termo, manufatura gil, incorpora todas estas
caractersticas.
Para implementar a manufatura gil, o projeto do produto e o planejamento devem se tornar
integrados de forma muito estreita com a manufatura, e todos os gargalos no fluxo do produto e no
fluxo das informaes de engenharia devem ser minimizados. A integrao estreita entre funes de
projeto, planejamento e manufatura requer que informaes precisas e suficientemente completas
sobre todos os aspectos do produto, processos de produo e operaes estejam disponveis. Assim,
espera-se que futuros sistemas de projeto e planejamento estejam estreitamente alinhados com a
tecnologia de manufatura, e futuros sistemas de manufatura necessitaro de informaes mais
completas e mais precisas quando comparadas s informaes disponveis no momento.
A necessidade de integrao vai alm dos contornos de uma simples companhia; existe um aumento
no nmero de companhias que trabalham em cooperao e sociedades com outras companhias,
vendedores e subcontratadas, criando o que se entende por empreendimento virtual (virtual
enterprise). A integrao harmoniosa dos empreendimentos virtuais requer uma troca precisa das
informaes sobre os produtos e processos envolvidos. Junto com as caractersticas da manufatura
gil, empreendimentos virtuais formam a base do que vrios especialistas acreditam ser o prximo
paradigma de manufatura dominante.
1.2 MODELO DO PRODUTO
primeira vista, a estreita integrao entre as funes de projeto, planejamento e manufatura
conflitam com o objetivo de manter a independncia saudvel entre o projeto do produto e os
detalhes de sua manufatura. Esta separao ainda importante, pois alguns produtos vivero mais
que a tecnologia utilizada para a sua realizao. A independncia entre o projeto e a manufatura
fornece graus de liberdade adicionais para os especialistas da rea de manufatura. Um projetista de
produto, que pode no possuir conhecimentos sobre as possibilidades e limitaes da tecnologia de
manufatura, no deve desnecessariamente diminuir a liberdade do engenheiro da rea de
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 2
manufatura. Ele deve deixar para o ltimo a liberdade de escolher a proposta mais apropriada para
manufaturar o produto projetado.
A soluo lgica para o dilema entre a integrao e a separao das informaes, utilizar modelos
do produto de alto nvel para comunicar as informaes de projeto com o planejamento e a
manufatura. Enquanto armazena-se precisamente e de forma completa todas as propriedades
essenciais sobre o produto como definido pelo projetista, o modelo do produto no deve especificar
detalhes insignificantes para a sua funo. Isto , o princpio do menor comprometimento deve ser
seguido.
O modelo do produto apenas uma fonte de informaes necessrias para realizar a total integrao
das operaes de manufatura de uma companhia. Entretanto, especula-se que um sistema de
software para projeto, planejamento e manufatura segundo o futuro paradigma de manufatura, ser
baseado em quatro tipos de modelos:
Conhecimento genrico sobre o produto, que armazena informaes genricas dos
produtos e forma um repositrio bsico de engenharia. O conhecimento deve ser
sistematizado isto , deve estar disponvel, ser compreensvel e ser verificvel.
Modelo do Produto, que representa todos os aspectos relevantes de um produto
Modelo da
Fbrica
Modelo do
Produto
Base de
Conhecimento
do Produto
Base de
Conhecimento
do Processo
Projeto e Planejamento
Integrados
ligao para o sistema de manufatura
CAD CAM
Controle do Processo
de Manufatura
Projeto e Simulao do
Sistema de Manufatura
Figura 1-1. Arquitetura hipottica para um futuro sistema de engenharia de software.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 3
especfico a ser manufaturado enquanto evita a prejudicial super-especificao de
detalhes irrelevantes. Em particular, deve ser possvel representar modelos vagos ou
incompletos quando apropriado.
Modelo genrico de processo, que armazena caractersticas genricas dos processos
de manufatura em uma forma sistematizada, incluindo necessidades de recursos,
capacidades, custo e lead time.
Modelo da fbrica, armazena uma coleo de instncias de processos particulares que
esto presentes em uma fbrica em particular. Um modelo da fbrica tambm
representa um estado dinmico de um sistema de manufatura.
A separao dos modelos genricos e especficos objetiva separar as responsabilidades entre
projeto, planejamento e manufatura. Os modelos genricos agem como bases de conhecimento que
armazenam informaes relativamente estticas. Este conhecimento utilizado indiretamente por
meio dos modelos especficos que instanciam as entidades armazenadas nos modelos genricos.
A Figura 1-1 exibe como estes modelos devem ser utilizados por meio de um sistema de software.
Como os sistemas de manufatura se tornam cada vez mais complexos e dinmicos, a modelagem
formal e a simulao dos sistemas de manufatura se tornaro o componente central de tal sistema de
software. Para manter a independncia entre o projeto e a manufatura sem sacrificar a eficincia e a
flexibilidade, as atividades de projeto e manufatura so reestruturadas como uma seqncia de
etapas onde o projeto se torna muito limitado de acordo com a fbrica em particular representada no
modelo da fbrica. Finalmente, o modelo do produto orientado manufatura utilizado como uma
fonte de informaes para o controle do processo de manufatura.
1.3 A IMPOSSIBILIDADE DE DEFINIO DE UM MODELO DO PRODUTO GENRICO
Para compreender melhor os objetivos relacionados aos modelos do produto, vamos discutir
brevemente os requisitos apresentados pela atividade de projeto do produto. Os requisitos
apresentados pela atividade de projeto do produto, considerando apenas o projeto mecnico, variam
de forma muito ampla; tanto na sua concepo (nvel abstrato) quanto no seu detalhamento.
Portanto, est fora da realidade considerar que um nico modelo do produto consiga satisfazer as
necessidades de todos os tipos de projeto mecnico. Para ilustrar este ponto, consideremos trs tipos
de projeto mecnico:
Configurao de sistema mecnico;
Projeto de montagem;
Projeto de peas mecnicas.
Para a configurao do sistema mecnico, o projetista define o sistema mecnico utilizando-se de
componentes, considerando apenas as suas funcionalidades e seus parmetros de entrada e sada que
influenciam o sistema como todo. O que est ocorrendo internamente a cada componente no deve
ser considerado. As variveis de interao consideradas em grande nmero dos projetos so
potncia, fluxo, movimento e fora. Os componentes podem ser eletro-mecnicos, hidrulicos,
pneumticos, trmicos ou mecnicos. Um elemento essencial configurao do sistema mecnico
a seleo e o posicionamento dos componentes. Isto precedido pela quebra das vrias funes em
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 4
sub-funes e pela procura de componentes e/ou sub-sistemas responsveis por uma atividade. A
configurao do sistema no fixa; o projetista configura o sistema selecionando, excluindo ou
modificando componentes interativamente.
No caso de montagem, existem trs tipos e as atividades de projeto para cada uma delas diferente.
Primeiro, existem montagens estticas que, como o nome indica, no contm partes que se
movimentam em relao uma a outra. Por exemplo, um trocador de calor, que envolve estruturas
soldadas e peas com juntas mecnicas (parafusadas, rebitados ou rosqueadas) uma montagem
esttica. Um segundo tipo de montagem um que envolve movimento relativo entre as partes
constituintes. A cinemtica pode ser simples como um eixo rotacionando sobre uma luva, o
movimento de um pisto sobre um atuador, ou o propulsor de uma bomba. Estas montagens so
chamadas de montagens dinmicas. Quando a cinemtica complexa como mecanismos abertos ou
fechados, o problema da sntese cinemtica deve ser resolvido primeiro. Montagens cinemticas so
hierrquicas de modo que elas podem ser decompostas sucessivamente em montagens menores
contendo cada vez menos elementos. Eles possuem um conjunto de graus de liberdade de
movimento; ativando estes graus de liberdade significa que estamos alterando a posio relativa e a
orientao de alguns elementos ou sub-montagens em relao aos outros.
Em alguns casos de montagem pode ser possvel desacoplar o projeto de peas do projeto de
montagem ou da configurao do sistema. Isto usualmente verdadeiro no projeto de mecanismos
onde os estudiosos da cinemtica raciocinam em termos de articulaes rgidas e juntas, por
exemplo. Nos estgios seguintes o projetista deve estar seguro de que as articulaes e outras partes
esto estruturalmente coerentes sem violao das condies do projeto da montagem ou
mecanismo. Nestas circunstncias o projeto das peas pode ser considerado como o ato de
acrescentar detalhes ao projeto. Nos outros casos, montagens complexas, onde projeto da pea e o
projeto da montagem no podem ser desacoplados, necessrio interagir entre os dois projetos. O
projeto da pea envolve anlise de engenharia de vrios tipos: estudos paramtricos, otimizao,
seleo de material, determinao da forma, dimenses e tolerncias. Ao nvel de projeto da pea
trabalha-se com a geometria real, ao invs de representaes abstratas como em montagem ou
configurao do sistema. Todos os detalhes da geometria da pea podem no estar disponveis (ou
podem no ser importantes) nos nveis iniciais. A forma e algumas dimenses so definidas por
decises iniciais ao nvel de configurao do sistema e so parcialmente determinadas por anlise
de engenharia para satisfazer alguns objetivos de projeto (mnimo peso, etc). Freqentemente
necessrio selecionar uma pea padro disponvel; nestes casos, o projeto da pea e a anlise
determinam qual pea (tipo, dimenses, etc) se aproxima mais do desempenho requisitado.
Vrios tipos de sistemas de CAD esto disponveis, ou em desenvolvimento, baseados em vrias
metodologias de modelagem do produto tais como: Modelagem de Slidos, Modelagem
Geomtrica, Modelagem por Features ou Modelos Paramtricos. Como o projeto avana em um
vasto domnio, um nico tipo de ferramenta, ambiente, ou modelo do produto no pode satisfazer
todas as necessidades. Muitos sistemas de CAD enfatizam o projeto detalhado, e suportam pouco as
fases iniciais do projeto. Por exemplo, modeladores de slidos so teis quando o projeto envolve
um arranjo geomtrico ou relacionamento de objetos geomtricos. Infelizmente, os modeladores de
slidos so de pouco uso na configurao de sistemas mecnicos.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 5
1.4 BREVE HISTRICO SOBRE OS SISTEMAS DE CAD/CAM
Pode se dizer que o desenvolvimento das facilidades para modelagem de peas para aplicaes de
CAD foram iniciadas ao final dos anos 50 e incio dos anos 60 quando o primeiro sistema de
CAD/CAM foi desenvolvido. Logicamente, estes sistemas CAD eram apenas um conjunto de
ferramentas para aplicaes muito especficas. O desenvolvimento dos sistemas CAD reflete o
desenvolvimento de suas possveis aplicaes. possvel identificar quatro reas que influenciaram
os sistemas CAD como ns os conhecemos hoje:
Mquinas NC foram propostas no incio dos anos 50 pelo MIT. A existncia de
ferramentas controladas numericamente criou a necessidade de modelos de peas
numricas que poderiam ser utilizadas para guiar as mquinas NC.
Como as primeiras mquinas NC eram utilizadas pelas indstrias automotivas e
aeronuticas, o interesse por modelagem de superfcies esculpidas foi logo despertado.
As pesquisas nesta rea culminaram com os trabalhos de Bezier, Coons, Gordon e
Ferguson, na primeira metade dos anos 60. Companhias como Douglas, Lockheed,
Boeing, McDonnell Aircraft e General Motors nos Estados Unidos e Renault e Citron
na Europa, foram as pioneiras neste desenvolvimento.
A tecnologia de computao grfica foi criada no incio dos anos 60. O interesse
inicial era focado em modelos que consistiam de faces planas poligonais. O primeiro
algoritmo de eliminao de linhas escondidas para tais modelos foi publicado por
Roberts em 1963. Um marco na rea de computao grfica interativa foi o trabalho
apresentado por Sutherland no MIT, entitulado Sketchpad: a man machine graphical
communicatiom system em 1963. Este trabalho demonstrou que a computao grfica
interativa era vivel. As tcnicas apresentadas neste trabalho continuam a serem r-
inventadas at hoje. No lado da aplicao, a disponibilidade de ferramentas para
computao grfica interativa viabilizaram o desenvolvimento do primeiro sistema bi-
dimensional para detalhamento de desenho.
Uma outra rea que apresentou um desenvolvimento paralelo foi a anlise em
engenharia baseada em mtodos de elementos finitos (FEM). As aplicaes de FEM
requerem programas denominados por pr- e ps-processadores. O primeiro
utilizado para definir a geometria, gerando a malha de elementos finitos, e aplicando
as condies de contorno. O ltimo utilizado para exibir os resultados da anlise
segundo vrias formas. Durante os anos 70, a gerao interativa de malhas se tornou
disponvel comercialmente. Desde ento os vendedores de software de FEM esto
continuamente melhorando as capacidades dos pr- e ps-processadores dos seus
sistemas, que podem, eventualmente, estar integradas a modeladores geomtricos.
Os primeiros sistemas CAD foram direcionados para a rea de desenho tcnico, suportando
inicialmente apenas funes de desenho 2D. Ao final dos anos 60 e incio dos anos 70, surgiu o
desejo de estender os sistemas CAD iniciais para trs coordenadas. Isto se tornou muito mais
complexo que apenas acrescentar uma terceira coordenada. Era esperado que existisse um modelo
tri-dimensional central, permitindo a gerao automtica de todas as projees bi-dimensionais
desejadas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg. 6
Utilizando as tcnicas para eliminao de linhas e superfcies escondidas j desenvolvidas, os
trabalhos para definir os sistemas de modelagem de slidos se iniciaram durante os anos 70. Duas
reas de atuao foram logo propostas: Ian Braid e seus colegas na Universidade de Cambridge,
trabalharam na representao B-Rep (Boundary Representation), modelos consistindo apenas por
faces que poderiam ser planas, qudricas ou toroidais; Voelcker e Requicha na Universidade de
Rochester, apresentaram os modelos CSG, consistindo de um nmero finito de operaes booleanas
aplicadas a semi-espaos definidas por desigualdades algbricas. Independentemente, Okino
desenvolveu um outro tipo de sistema baseado em semi-espaos. Estes grupos, em Cambridge e
Rochester, foram seguidos por vrios outros, e ambas as linhas de desenvolvimento permitiram que
aplicaes comerciais surgissem ao final dos anos 70 e incio dos anos 80.
A principal vantagem dos sistemas de modelagem de slidos que objetos sem sentido no podem
ser criados. O projetista tem a opo de trabalhar com volumes slidos ao invs de primitivos de
baixo nvel, como linhas, arcos e pontos. Proponentes da tecnologia de modelagem de slidos,
esperavam que ao superar todos os problemas tcnicos, os modeladores de slidos poderiam
substituir rapidamente os sistemas de desenho tcnico nas atividades de projeto. Infelizmente isto
no ocorreu. Mesmo hoje, a maioria dos sistemas CAD so baseados em tcnicas de desenho
tcnico. Ao invs de auxiliar as atividades de projeto, os sistemas de modelagem de slidos
encontram uso na documentao do projeto, estudos de montagem, robtica, definio de geometria
para malhas de FEM e gerao do caminho de usinagem para mquinas NC.
Ao longo dos anos, os quatro campos que originaram o progresso inicial dos modelos CAD
continuaram a influenciar o desenvolvimento posterior dos sistemas CAD. Durante os anos 80, as
pesquisas se voltaram para incorporar as facilidades de superfcies esculpidas aos modelos B-Rep,
resultando que a Modelagem Geomtrica e a Modelagem de Slidos foram quase que
completamente fundidas. Um outro desenvolvimento significativo foi a proposta de superfcies
NURBS (nonuniform rational B-Splines) para homogeneizar as vrias representaes de curvas e
superfcies utilizadas em sistemas CAD.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
7
2. ALGORITMOS DE COMPUTAO GRFICA MATRICIAL
Os dispositivos de computao grfica matricial requerem procedimentos especiais para gerar a sua
exibio. Neste captulo apresentaremos algoritmos para traamento de linhas e crculos,
preenchimento de polgonos, transformao e visualizao 2D.
2.1 HARDWARE DE EXIBIO
Existem vrios dispositivos de sada para desenhos gerados por computao grfica. Exemplos
tpicos so plotters planos, plotters de tambor, impressoras matriciais, impressoras laser, monitores
de tubos de raios catdicos (CRT), dentre outros. Como a grande maioria dos sistemas de
CAD/CAM utilizam um tipo de monitor CRT e porque a maioria dos conceitos fundamentais de
exibio esto incorporados na tecnologia de exibio de dispositivos grficos matriciais,
limitaremos a nossa discusso aos monitores CRT. Para que uma imagem seja gerada no monitor
CRT necessria a atuao de trs componentes bsicos: um monitor de vdeo CRT, uma memria
digital (frame-buffer) e uma interface entre estes dois elementos.
O Monitor de Vdeo CRT: os monitores que se utilizam no podem ser simples
monitores de televiso, ainda que exista uma grande semelhana, pois os dois possuem
um tubo de raios catdicos como componente principal. O monitor para computadores
necessita de caractersticas mais avanadas, como alta resoluo de tela, intensidade
de brilho controlada, preciso da freqncia de varredura de tela, etc. (vide Figura 2-
1). O canho de eletrns emite um feixe que acelerado em direo tela dotada de
revestimento de fsforo. No caminho os eltrons so forados atravs de um estreito
tnel, que o mecanismo de foco do sistema; em seguida o feixe direcionado para
um ponto particular da tela por um campo eletrosttico ou eletromagntico produzido
pelo sistema de deflexo (horizontal e vertical). Quando os eltrons atingem a tela, o
Revestimento de
Fsforo
Sistema de Foco
Deflexo Vertical
Deflexo
Horizontal
Canho de Eltrons
Figura 2-1. Esquema estilizado de um monitor CRT.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
8
fsforo emite luz visvel. Como a luz emitida
decai exponencialmente com o tempo, toda a
imagem deve ser redesenhada vrias vezes por
segundo para que a figura na tela parea
constante e sem oscilaes. O redesenhamento
feito sempre de cima para baixo e da esquerda
para a direita, linha por linha. Esta operao
denominada rastreamento ou varredura da tela
(vide Figura 2-2). Nos monitores de vdeo, no
se emprega o mesmo tipo de CRT utilizado em
TV. D-se preferncia ao CRT com fsforo de
alta persistncia, geralmente o verde, pois ele capaz de transformar um feixe de
eltrons de intensidade muito menor em luz. Dessa forma a tenso requisitada para o
anodo do CRT pode ser menor e a emisso de raios X diminui conseqentemente, fato
que possibita uma exposio mais prolongada do operador de computador (que fica
bem prximo ao vdeo) prejudicando-lhe menos a sade.
A Memria Digital: Esta memria uma matriz de bits onde so armazenados valores
binrios (0 ou 1), que representam a condio apagado ou acesso do ponto do monitor.
Cada posio determinada por uma linha e uma coluna da matriz guarda um valor de
brilho para o endereo de tela (coordenadas x e y ), vide Figura 2-3. Note que cada
endereo de memria define um elemento pontual de uma imagem na tela,
Figura 2-3. Rastreamento da tela.
Y
0
X0
R G B
Y
0
X0
0
0
1
1
0
1
0
1
1001 0001 0100
1001 0001 0100
0000 0000 0001
0000 0000 0000
R G B
0
1
53
53
Palheta de Cores
Figura 2-2. Framebuffer e a palheta de cores.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
9
512
512
8 bits de profundidade
512
512
Conversor D/A
denominado pixel (abreviatura para picture element, ou elemento de figura). Em
alguns dispositivos, a definio da cor no feita de modo direto, possuindo um ndice
para uma palheta de cores (vetor de cores) que definir a cor so os chamados
sistemas com cores simultneas.
A Interface de Controle: como no
monitor CRT utilizam-se sinais
analgicos enquanto na memria de
tela trabalha-se com sinais digitais,
necessria a existncia de uma
interface entre estes dois dispositivos
que tambm controle o fluxo de
informaes de um extremo a outro.
Ela recebe o nome de sistema
controlador de exibio (display
controler) e sua funo sincronizar a
leitura dos endereos de memria com
a gerao das coordenadas de
rastreamento da tela de modo a utilizar
o contedo do frame-buffer para controlar a intensidade do pixel. A Figura 2-4 mostra
a organizao geral do sistema controlador de exibio.
2.2 ALGORITMOS DE TRAAMENTO DE LINHAS
As linhas so utilizadas em um grande nmero de figuras geradas por computador. Elas aparecem
em diagramas de blocos, em histogramas e grficos, desenhos de engenharia e arquitetura,
esquemas lgicos, e muitas outras aplicaes. Alm disso, linhas de pequenos comprimentos podem
ser utilizadas para gerar aproximaes de outros tipos de curvas (por exemplo crculos, elipses, etc).
Devido a sua grande utilizao deve-se ter muito cuidado ao tra-las. Os requisitos bsicos para
um bom traado so quatro:
As linhas devem parecer realmente retas: as tcnicas de plotagem de pontos so timas para
traar linhas paralelas ou a 45 graus dos eixos cartesianos. Nos outros casos, entre os pontos
inicial e final da linha passar por pontos no endereveis. A qualidade da linha dependerer
da escolha dos pontos intermedirios, podendo parecer quebrada ou no.
As linhas devem terminar corretamente: quando se desenha uma figura geomtrica
importante que cada linha termine exatamente onde comear a prxima, para evitar
falhas representadas por pequenos saltos.
As linhas devem ter densidade constante: independentemente do comprimento ou da
direo da linha necessrio que o brilho seja uniforme para evitar a sensao de
variao de espessura da linha.
Figura 2-4. Sistema controlador de exibio.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
10
As linhas devem ser traadas rapidamente: como as linhas so normalmente usadas em
grandes quantidades em aplicaes grficas elas devem ser desenhadas rapidamente.
Isto implica que se deve usar o mnimo de clculo para tra-las.
Estes critrios de traamento so razoavelmente preenchidos pelos algoritmos que sero
apresentados.
2.2.1 MTODO DDA- DIGITAL DIFFERENTIAL ANALYZER (ANALIZADOR DIFERENCIAL DIGITAL) PARA
LINHAS
Esta tcnica baseia-se na soluo de equaes diferenciais. No caso de uma linha temos:
p f
p f
x x
y y
cte
dx
dy

= =
( 1 )
Aonde ) , (
p p
y x so as coordenadas do princpio da linha e ) , (
f f
y x so as coordenadas do final da
linha. O mtodo consiste em incrementar as coordenadas intermedirias ) , (
i i
y x a partir do ponto
) , (
p p
y x at o ponto ) , (
f f
y x de modo a se obter a aproximao para a linha. Definindo os
incrementos nas direes x e y como x e y temos a seguinte soluo de recurso:
y y y
x x x
i i
i i
+ =
+ =
+
+
1
1
( 2 )
?
?
?
?
?
?
?
?
?
Figura 2-5. Traamento de linhas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
11
A relao entre os incrementos deve obedecer equao diferencial para que a inclinao da linha
seja preservada, dessa forma:
p f
p f
x x
y y
cte
x
y

= =

( 3 )
Pela Figura 2-5 pode-se notar que a coordenada x deve receber sempre um incremento unitrio
enquanto a coordenada y , ora incrementada ora se mantm constante. Por essa caracterstica a
direo x denominada direo principal de incremento, que define o comprimento principal da
reta; no caso, o comprimento principal a componente horizontal da reta ) (
p f
x x . Como
conseqncia deste fato e devido relao (3) deduz-se que:
1
1
<

=
=

=
principal o compriment
y y
y
principal o compriment
x x
x
p f
p f
( 4 )
Como y pode ser um nmero real e a matriz de pontos s admite valores discretos, a cada
iterao, a coordenada y deve ser truncada ou arredondada. Para que o arredondamento seja
efetuado de maneira correta preciso inicializar as coordenadas com o valor 5 . 0 . O traamento da
reta propriamente dito composto de um simples contador como pode ser observado abaixo:
void DDA(float x1, float y1, float x2, float y2)
{
float Length, delta_x, delta_y, x, y, i;
/* Determina o maior comprimento */
if (abs(x2 - x1) > abs(y2 - y1))
Length = abs(x2 - x1);
else
Length = abs(y2 - y1);
/* Calcula os incrementos de x e y */
delta_x = (x2 - x1) / Length;
delta_y = (y2 - y1) / Length;
/* Inicializa os valores antes do arredondamento */
x = x1 + 0.5 * Sinal(delta_x);
y = y1 + 0.5 * Sinal(delta_y);
/* Inicio do lao principal */
i = 1
while (i < Length) {
Plot(inteiro(x), inteiro(y), 1)
x += delta_x;
y += delta_y;
i ++;
}
}
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
12
s
Varivel Erro
Erro
Coordenada X
As linhas inter-pixel
esto representadas
em tracejado.
2.2.2 O ALGORITMO DE BRESENHAM
PARA TRAAMENTO DE LINHA
O mtodo de Bresenham para traamento
de retas consiste em sempre incrementar
de uma unidade a coordenada x ,
enquanto o incremento da varivel y ,
determinado examinando-se a distncia
entre a posio da reta real e a posio
associada ao meio do pixel mais
prximo. Esta distncia denominada
por erro e a eficincia deste algoritmo
reside na sua correta manipulao. A
Figura 2-6 ilustra uma linha traada por
este algoritmo.
A Figura 2-7 ilustra um exemplo de traamento de linha para uma inclinao de
12
5
da linha real.
Supondo que a linha se inicia em ) 0 , 0 ( , quando avanarmos para 1 = x avanaremos para uma
posio de 5 . 0
12
5
< = y e portanto a coordenada y no ser incrementada. Agora, sendo 2 = x
Figura 2-6. Exemplo de traamento pelo algoritmo de
Bresenham.
Figura 2-7. Relao da varivel erro associada ao algoritmo de
Bresenham.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
13
atingiremos 5 . 0
12
10
> = y provocando um incremento na coordenada y . Caso inicializemos o
erro com 5 . 0 bastar verificarmos o sinal para determinar se necessrio ocorrer o incremento da
coordenada y . Note que para isto, aps incrementar a coordenada y preciso reinicializar o erro,
subtraindo-se uma unidade do seu valor. Portanto tem-se o seguinte algoritmo:
DesenhaLinhaBresenham(float x1, float y1, float x2, float y2)
{
int x = x1;
int y = y1;
float DeltaX = x2 - x1;
float DeltaY = y2 - y1;
float e = DeltaY/DeltaX 0.5;
for (i = 1 ; i <= DeltaX ; i++) {
plot(x, y);
if (e > 0) {
y ++;
e --;
}
x ++;
e += DeltaY/DeltaX;
}
}
possvel melhorar a velocidade deste algoritmo eliminando a operao de diviso e utilizando-se
somente variveis inteiras ao invs de variveis reais. Uma vez que apenas o sinal do erro
importante, a seguinte transformao suficiente para atingir este objetivo:
e e x ' = 2 ( 5 )
Isto permite que este algoritmo seja eficientemente implementado (at mesmo em hardware). O
algoritmo modificado para a aritmtica de inteiros apresentado abaixo:
DesenhaLinha(int x1, int y1, int x2, int y2)
{
int x = x1;
int y = y1;
int DeltaX = x2 - x1;
int DeltaY = y2 - y1;
int e = 2*DeltaY - DeltaX;
for (i = 1 ; i <= DeltaX ; i++) {
plot(x, y);
if (e > 0) {
y ++;
e -= 2*DeltaX;
}
x ++;
e += 2*DeltaY;
}
}
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
14
(x,y)
(y,x)
(y,-x)
(x,-y) (-x,-y)
(-y,-x)
(-y,x)
(-x,y)
2.3 TRAAMENTO DE CIRCUNFERNCIA
Dentro da computao grfica a eficincia dos
dispositivos matriciais utilizados, depende
estreitamente da eficincia dos algoritmos de
traamento de figuras fundamentais, tambm
chamados primitivos de compugrafia matricial. Sem
dvida, alm das linhas, as circunferncias pertencem
a esta classe de elementos devido a sua estensa faixa
de aplicao.
Dada uma circunferncia com centro na origem, uma
primeira anlise desta figura geomtrica deve
considerar uma caracterstica importante: sua
simetria em relao aos eixos de centro. Isto implica
que basta traar um quarto da circunferncia e gerar
as outras partes atravs de simples reflexes para obter-se seu traamento completo. Alm disso
existem tambm simetrias em relao s retas bissetrizes dos quadrantes. Dessa forma,
considerando o primeiro quadrante, pode-se dividi-lo em dois octantes simtricos. Logo, conclui-se
que basta gerar um oitavo da circunferncia para conseguir todas as coordenadas dos pontos da
circunferncia completa. As reflexes necessrias podem ser facilmente implementadas como
mostra a Figura 2-8.
2.3.1 ALGORITMO PARA TRAAMENTO DE CIRCUNFERNCIAS PELO PONTO INTERMEDIRIO
Como no algoritmo para traamento de linha, sero realizadas amostragens em intervalos unitrios
para determinar a cada passo o pixel mais prximo a uma circunferncia especfica. O algoritmo
ser configurado para desenhar uma circunferncia de raio r ao redor da origem, posteriormente
cada ponto poder ser deslocado para a posio adequada segundo o centro real da circunferncia:
) , (
c c
y x . Ao longo da seo da circunferncia de 0 = x at y x = no primeiro quadrante, a
inclinao varia de 0 a 1 . Ento, possvel fazer uso de passos unitrios segundo o sentido
positivo de x e segundo um parmetro de deciso verificar qual das duas posies em y mais
prxima do contorno da circunferncia em cada passo. As posies nos outros octantes so obtidas
por simetria. Para aplicarmos o mtodo do ponto intermedirio, definiremos a funo
circunferncia:
2 2 2
) , ( r y x y x f
circ
+ = ( 6 )
Qualquer ponto ) , ( y x no contorno da circunferncia com raio r satisfaz a equao 0 ) , ( = y x f
circ
.
Se o ponto estiver no interior da circunferncia, ento a funo circunferncia negativa. E se o
ponto estiver no exterior da circunferncia, ento a funo circunferncia positiva. Resumindo, a
posio relativa de qualquer ponto ) , ( y x pode ser determinada pela anlise do sinal da funo
circunferncia:
Figura 2-8. Simetria do crculo.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
15
?
?
Ponto Intermedirio
x
k
x
k
+
1
x
k
+
2
y
k
y
k
-1
x
2
+y
2
-r
2
=0

>
=
<
=
fora
sobre
dentro
y x f
circ
0
0
0
) , (
( 7 )
Os testes da funo circunferncia descritos na equao ( 7 ) sero realizados para o ponto
intermedirio entre os pixels prximo circunferncia
em cada passo de amostragem. Ento, a funo
circunferncia o parmetro de deciso no algoritmo
do ponto intermedirio, e possvel configurar os
clculos para nmeros inteiros como realizamos para o
algoritmo de traado de linhas.
A Figura 2-9 exibe o ponto intermedirio entre os dois
pixels candidatos segundo a posio 1 +
k
x . Assumindo
que acabamos de acender o pixel ) , (
k k
y x , precisamos
determinar se o pixel ) , 1 (
k k
y x + ou o pixel
) 1 , 1 ( +
k k
y x que est mais prximo do contorno da
circunferncia. O parmetro de deciso a funo
circunferncia ( 7 ) avaliada no ponto intermedirio
entre os dois pixels:
2 2 2
)
2
1
( ) 1 (
)
2
1
, 1 (
r y x
y x f p
k k
k k circ k
+ + =
+ =
( 8 )
Se 0 <
k
p , este ponto intermedirio est interno circunferncia e o pixel na linha
k
y est mais
prximo ao contorno da circunferncia. Em caso contrrio, o ponto intermedirio est externo
circunferncia ou sobre o contorno da circunferncia, e ser selecionado o ponto na linha 1
k
y . Os
parmetros para as sucessivas decises so obtidos por clculo incremental. A expresso recursiva
para o prximo parmetro de deciso obtida pelo desenvolvimento da funo circunferncia para a
posio de amostragem em 2 1
1
+ = +
+ k k
x x :
| |
2 2
1
2
1 1 1
)
2
1
( 1 ) 1 (
)
2
1
, 1 (
r y x
y x f p
k k
k k circ k
+ + + =
+ =
+
+ + +
( 9 )
Ou
1 ) ( ) ( ) 1 ( 2
1
2 2
1 1
+ + + + =
+ + + k k k k k k k
y y y y x p p ( 10 )
Figura 2-9. Pixels candidatos a serem o
prximo a ser aceso e o ponto
intermedirio.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
16
Onde
1 + k
y pode ser tanto
k
y como 1
k
y dependendo do sinal de
k
p . Os incrementos para obter
1 + k
p so 1 2
1
+
+ k
x (se
k
p for negativo) ou
1 1
2 1 2
+ +
+
k k
y x (em caso contrrio). Na posio
inicial ) , 0 ( r , o parmetro de deciso inicial obtido pelo desenvolvimento da funo
circunferncia:
r r r
r f p
circ
= + =
=
4
5
)
2
1
( 1
)
2
1
, 1 (
2 2
0
( 11 )
Caso os incrementos sejam apenas inteiros, ele pode ser arredondado para:
r p =1
0
( 12 )
O algoritmo final apresentado abaixo:
DesenhaCircunferencia(int xc, int yc, int r)
{
int x, y, p;
x = 0;
y = r;
DesenhaPontoCircunferencia(xc, yc, x, y);
P = 1 r;
while (x < y) {
if (p < 0)
x ++;
else {
x ++;
y --;
}
if (p < 0)
p += 2 * x + 1;
else
p += 2 * (x y) + 1;
DesenhaPontoCircunferencia(xc, yc, x, y);
}
}
A rotina DesenhaPontoCircunferencia acende todos os oito pontos da circunferncia, simtricos ao
ponto ) , ( y x em relao ao centro da circunferncia ) , (
c c
y x .
2.4 DISTORO DOS DISPOSITIVOS MATRICIAIS
Uma caracterstica da maioria dos sistemas grficos que a densidade de pixels na horizontal difere
da densidade de pixels na vertical, propriedade chamada de razo de aspecto. Por exemplo, no
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
17
(240,100) (100,100)
(0,0)
b
a
modo 200 640x , um tpico monitor colorido de 200 linhas mostra aproximadamente 70 pixels por
polegada na horizontal, mas somente 30 pixels por polegada
vertical.
Esta diferena nas densidades de pixels, produz distores
na visualizao das linhas e circunferncias traadas pelos
algoritmos apresentados nas sesses anteriores. Por exemplo,
na Figura 2-10, no modo 200 640x , uma linha entre o pixel
) 0 , 0 ( no canto esquerdo superior e o pixel ) 100 , 100 ( tem
uma inclinao matemtica de 1, ou seja, esta linha deveria
estar disposta a 45 graus em relao aos eixos cartesianos.
Entretanto esta linha (linha a na Figura 2-10) est
comprimida na direo horizontal. Para desenhar uma linha
a 45 graus preciso ajustar o valor das coordenadas para
compensar a diferena entre a densidade de pixels na
horizontal e na vertical. No modo 200 640x a razo de aspecto vale aproximadamente 4 , 2 . Assim,
corrigindo as coordenadas finais da reta tem-se ) 100 , 240 ( . A reta corrigida (linha b na Figura 2-
10) apresenta um ngulo de 45 graus na tela. necessrio corrigir as coordenadas de todos os pixels
em todos os elementos. Se este procedimento no for seguido, os quadrados parecero retngulos e
crculos sero distorcidos para a forma de elipses.
2.5 PREENCHIMENTO DE POLGONOS
Um elemento de sada padro (que possui rea) em pacotes grficos genricos uma rea poligonal
preenchida com um padro ou com uma cor slida. Outros tipos de elementos com rea podem estar
disponveis, mas os polgonos so mais fceis de processar. Existem duas propostas bsicas para
preencher uma rea em um dispositivo matricial. Uma maneira preencher uma rea a partir de um
ponto inicial (tambm chamado por semente) interno rea que se desenha preencher, e o algoritmo
preencher esta rea a partir deste ponto, at que seja encontrada uma condio de contorno
especfica. Uma outra maneira preencher uma rea pela determinao da interseco da rea a ser
preenchida com linhas de varredura horizontais. O mtodo de preenchimento por linha de varredura
til para preencher e hachurar polgonos. O mtodo de preenchimento por semente til para
preencher reas com contorno complexo e para ser utilizado em sistemas de desenho interativo.
2.5.1 PREENCHIMENTO POR PONTO SEMENTE
Uma proposta para preenchimento de reas iniciar o preenchimento a partir de um ponto interno
rea e preencher a partir deste ponto em direo ao contorno. Se o contorno for especificado por
uma cor nica, o algoritmo de preenchimento caminha pixel por pixel at que a cor do contorno seja
encontrada. Este mtodo, chamado por Algoritmo de Preenchimento com Contorno,
particularmente til em sistemas de desenho interativo, onde o ponto interior facilmente
selecionvel. O procedimento de preechimento com contorno aceita como entrada um ponto interior
) , ( y x , uma cor de preenchimento e uma cor de contorno. Iniciando a partir do ponto ) , ( y x , o
Figura 2-10 . Linha distorcida em
um dispositivo matricial.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
18
procedimento verifica as posies vizinhas para determinar se ela possui a cor de contorno ou se ela
j possui a cor de preenchimento. O algoritmo encontra-se detalhado abaixo:
BoundaryFill(int a, int b, color cb, color cnew)
{
color c;
c = read_pixel(a,b);
if (c != cb && c != cnew) {
write_pixel(a, b, cnew);
BoundaryFill(a+1, b , cb, cnew);
BoundaryFill(a , b+1, cb, cnew);
BoundaryFill(a-1, b , cb, cnew);
BoundaryFill(a , b-1, cb, cnew);
}
}
Este algoritmo, pelo fato de ser recursivo, utiliza a pilha em demasia. Existem propostas mais
eficientes que evitam o uso demasiado da pilha. Um destes mtodos realiza varreduras horizontais
at encontrar um pixel com a cor de preenchimento ou com a cor de contorno. Sendo que a recurso
ocorre apenas para que a linha horizontal abaixo e outra acima sejam percorridas para que o mesmo
procedimento seja executado, diminuindo o uso da pilha. Uma variao deste algoritmo chamada
por Algoritmo de Preenchimento por Enchente, substitui uma cor especificada por uma cor de
preenchimento. Tal algoritmo pode ser implementado com pequenas alteraes a partir do
algoritmo ilustrado anteriormente.
2.5.2 ALGORITMO DE PREENCHIMENTO POR LINHA DEVARREDURA
Figure 2-11 exibe o procedimento de linha de varredura para uma rea poligonal. Para cada linha de
varredura que intersecciona o polgono, o algoritmo de preenchimento de rea determina os pontos
de interseco entre cada linha de varredura e as bordas do polgono. Estes pontos de interseco
so ordenados da esquerda para a direita, e traa-se uma linha
a partir de um ponto par para um ponto impar segundo a lista
ordenada. Na Figura, os quatro pontos de interseco entre a
linha de varredura e o contorno do polgono definem dois
pares de pontos, portanto duas linhas sero traadas.
Alguns pontos de interseco entre a linha de varredura e o
contorno do polgono necessitam de um processamento
especial. A Figura 2-12 , exibe duas linhas de varredura que
passam sobre vrtices do polgono a ser preenchido: linhas y
e ' y . Aparentemente, a linha ' y intersecciona o polgono em
dois pontos, e a linha y intersecciona o polgono em apenas
trs pontos. A diferena topolgica entre estas duas linhas
reside no fato de que as arestas vizinhas ao vrtice de interseco podem estar de um mesmo lado
em relao linha de varredura ou estar em lados opostos. As arestas vizinhas ao vrtice de
interseco A, segundo a linha de varredura y , esto posicionadas no mesmo lado. A mesma
Figura 2-11. Linhas interiores em
relao a uma linha de varredura
passando sobre um polgono.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
19
A
B
y
y'
anlise sendo feita para as arestas vizinhas ao vrtice de
interseco B , segundo a linha de varredura ' y , esto
posicionados em lados opostos. No caso do vrtice A, ele
removido da lista de pontos de interseco, fazendo com que a
linha de varredura y possua apenas dois pontos de
interseco. No caso do vrtice B , ele processado
normalmente.
Para executar eficientemente o algoritmo de preenchimento de
polgono, possvel inicialmente armazenar o contorno do
polgono em uma tabela ordenada de arestas que contm todas
as informaes necessrias para processar as linhas de
varredura de forma eficiente. Varrendo as arestas do polgono
segundo um sentido (horrio ou anti-horrio), ordena-se as
arestas segundo o menor valor y para o maior valor as
arestas horizontais sero ignoradas. No caso ilustrado na
Figura 2-13, temos uma lista ordenada de arestas contendo a
seqncia: 3 2 5 4 1 P P P P P . Em seguida produz-se
uma lista de arestas ativas. Esta lista contm as arestas do polgono que so interseccionadas pelas
linhas de varredura que passam pelos vrtices do polgono.
Finalmente, processa-se a lista de arestas ativas para cada linha de varredura. Determinando-se
pontos de interseco que definem as linhas que sero traadas para preencher o polgono. Caso
exista um vrtice conforme o caso ilustrado na Figura 2-12 em que as arestas vizinhas esto no
mesmo lado em relao linha de varredura, este vrtice ser ignorado.
Figura 2-12. Pontos de interseco
entre o polgono e a linha de
varredura que ocorrem em vrtices
do polgono.
P1
P2
P5
P4
P3
P1
P4
P5
P2
P3
P1,P2 P1,P5
P1,P2
P1,P2
P2,P3
P1,P5
P4,P3
P4,P3
P4,P5 P4,P3
Espessura
Figura 2-13. Um polgono e sua tabela ordenada de arestas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
20
2.6 SISTEMAS DE COORDENADAS (COORDENADAS DO USURIO E COORDENADAS DE
DISPOSITIVO)
Com raras excees, os pacotes grficos genricos foram projetados para trabalhar com
Coordenadas Cartesianas. Geralmente, vrios sistemas cartesianos de referncia so utilizados:
sistema de coordenadas locais, sistema de coordenadas do usurio, sistema de coordenadas
normalizadas de dispositivo e sistema de coordenadas de dispositivo. possvel incluir um objeto
desenho principal (por exemplo, um sof em um pacote de arquitetura), neste caso o objeto est
definido em coordenadas locais. O desenho principal est sendo definido segundo coordenadas do
usurio. Ao exibirmos o desenho em algum dispositivo necessrio converter o desenho de
coordenadas do usurio para coordenadas de dispositivo. Geralmente, um sistema grfico,
primeiramente, converte as coordenadas do usurio para coordenadas normalizadas de dispositivo,
que variam de 0 a 1, antes da converso final para coordenadas de dispositivo. Isto torna o pacote
independente dos vrios dispositivos que possam ser utilizados para exibir um determinado desenho
em particular o mesmo desenho pode ser exibido na tela e enviado a um plotter ou impressora. A
equao abaixo ilustra a seqncia de converso de coordenadas em um pacote grfico:
( ) ( ) ( ) ( )
cd cd cnr cnr cu cu cl cl
y x y x y x y x , , , ,
( 13 )
Onde cl significa coordenadas locais, cu significa coordenadas de usurio, cnr significa
coordenadas normalizadas de dispositivo e cd significa coordenadas de dispositivo. A Figura 2-14
ilustra esta seqncia de transformaes de coordenadas locais a coordenadas de dispositivo. Os
objetos esto definidos em coordenadas locais, em seguida eles so posicionados no desenho e
convertidos para coordenadas do usurio. Para fins de exibio, as coordenadas do usurio so
convertidas para coordenadas normalizadas e finalmente convertidas para coordenadas de
dispositivo.
Coordenadas Locais
Coordenadas do
Usurio
Coordenadas
Normalizadas
1.0
1.0
Plotter
Outro Dispositivo
Coordenadas de
Dispositivo
Figura 2-14 . Seqncia de transformao de coordenadas locais para coordenadas de
dispositivo.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
21
J
d
J
e
J
s
J
i
V
s
V
i
V
d
V
e
2.7 TRANSFORMAO DE VISUALIZAO
Para definir a transformao de visualizao,
necessrio que o usurio especifique uma regio
retangular que ele deseja exibir, a janela window,
segundo o sistema de coordenadas do usurio como
e
J ,
d
J ,
s
J e
i
J - que significam coordenada
horizontal esquerda, coordenada horizontal
direita, coordenada vertical superior e coordenada
vertical inferior. Em seguida, seleciona-se uma regio
retangular na tela, a viewport, onde o usurio deseja
que o desenho seja exibido -
e
V ,
d
V ,
s
V e
i
V . Isto
similar ao que est ilustrado na Figura 3.15. Assim, o pacote grfico executa o escalamento e
translao necessrios para converter da janela para a viewport e vice-versa, segundo a equao:
y janela y view
x janela x view
d Y s Y
d X s X
+ =
+ =
( 14 )
Onde a escala e a translao podem ser calculados a partir dos requisitos abaixo:
i i
s s
d d
e e
V J
V J
V J
V J
6
6
6
6
( 15 )
O que nos leva a deduzir que:
i y i y
e x e x
i s
i s
y
e d
e d
x
J s V d
J s V d
J J
V V
s
J J
V V
s
=
=

=
( 16 )
De acordo com o uso original, o mapeamento janela-viewport corresponde a converter coordenadas
de usurio convertidas para coordenadas de dispositivo. Entretanto, alguns pacotes grficos
alteraram este conceito original e convertem coordenadas de usurio em coordenadas normalizadas,
para apenas depois converter as coordenadas normalizadas em coordenadas de dispositivo.
Figura 2-15. Mapeamento Janela-Viewport.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
22
Porque todo este trabalho? Como discutimos na sesso 2-3, a densidade de pixels na horizontal
diferente da densidade de pixels na vertical razo de aspecto, e esta diferena pode ser
compensada pelo mapeamento janela-viewport.
2.8 RECORTE DE LINHAS CLIPPING
Recorte o processo de selecionar um conjunto
especfico de informaes para exibir uma cena
particular de um conjunto maior. A Figura 2-16 ilustra
um nmero variado de atitudes que um segmento de
reta pode apresentar.
O algoritmo proposto por Cohen e Sutherland possui
duas partes, a primeira parte verifica se o segmento de
reta completamente visvel e se ele pode ser
considerado invisvel. Esta verificao realizada pela
diviso do espao em 9 regies (referencie a Figura 2-
17). Cada uma destas regies possui um cdigo de 4 bits
e cada extremidade do segmento de reta possuir um
cdigo de posio dependendo da regio a que ele
pertence.
Se os quatro bits de ambos os extremos forem zero,
ento a linha totalmente visvel. E caso a interseco
entre os bits dos cdigos de ambos os extremos, no for
nula, ento o segmento de linha no visvel. Caso o
segmento de linha no possa ser considerado como
sendo nenhum dos casos acima, ento o segmento de
linha subdividido e o teste acima aplicado
novamente.
float clipxl, clipxr, clipyb, clipyt;
Code(float x, float y, int *c)
{
*c = 0;
if (x < clipxl) *c = 1;
else if (x > clipxr) *c: = 2;
if (y < clipyb) *c += 4;
else if (y > clipyt) *c += 8;
}
Clip(float x1, float x2, float y1, float y2)
{
int c, c1, c2; float x, y;
Code(x1, y1, &c1); Code(x2, y2, &c2);
while (c1 != 0 || c2 != 0) {
if (c1 & c2) return;
c = c1 ; if (c == 0) c := c2;
janela
Figura 2-16. Atitudes diferentes de um
segmento de linha em relao borda da
janela.
janela
0000
1000 1001
0001
0101 0100
0010
1010
0110
Figura 2-17. As nove regies definidas
pelo contorno da janela, exibindo os seus
cdigos.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
23
if (c & 1) {
y = y1 + (y2-y1) * (clipxl-x1)/(x2-x1);
x = clipxl;
} else
if (c & 2) {
y = y1 + (y2-y1) * (clipxr - x1)/(x2-x1);
x = clipxr;
} else
if (c & 4) {
x = x1 + (x2-x1) * (clipyb-y1)/(y2-y1);
y =clipyb;
} else
if (c & 8) {
x = x1 + (x2-x1) * (clipyt-y1)/(y2-y1);
y = clipyt;
}
if (c == c1) { x1 = x; y1 = y; code(x, y, &c1); }
else { x2 = x; y2 = y; code(x, y, &c2); }
}
showline(x1, y1, x2, y2);
}
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
24
3. TRANSFORMAES GEOMTRICAS E PROJ EES
Vrios sistemas permitem que objetos selecionados no espao 2D ou 3D sejam movimentados, de
modo a serem posicionados segundo a forma mais apropriada. Nesta seo analisaremos duas
transformaes bsicas: translao e rotao. Tambm sero apresentados os fundamentos
matemticos envolvidos em dois mtodos bsicos de projeo: projeo paralela e projeo
perspectiva. Tambm ser considerado como transformaes geomtricas e projees podem ser
convenientemente representadas segundo uma forma matricial.
3.1 COORDENADAS HOMOGNEAS
Um ponto do espao tridimensional (denominado por espao real, com a finalidade de evitar
confuses) | |
T
Z Y X , representado por um vetor de quatro elementos | |
T
w z y x no
espao homogneo. Para auxiliar a distinguir entre o espao real e o espao homogneo, as
coordenadas do espao real sero escritas em letras maisculas e as coordenadas no espao
homogneo sero escritas em letras minsculas. A relao entre elas ilustrada pela equao
abaixo:
| |
T
T
w
z
w
y
w
x
(

= Z Y X ( 1 )
Observe que vrios vetores no espao homogneo podem representar o mesmo ponto no espao
real. Uma das caractersticas mais interessantes das coordenadas homogneas, que elas suportam
de forma elegante, a representao computacional de pontos que esto infinitamente distantes. Por
exemplo, considere o ponto | |
T
w 0 0 1 . Ele representa o ponto | |
T
w
0 0
1
no espao real. Se
o valor de w ficar cada vez menor, a coordenada X do ponto se tornar cada vez maior. Em ltima
instncia, quando w atingir 0, tem-se um ponto com coordenada X infinita. A formulao
homognea simples | |
T
0 0 0 1 ; estes valores so perfeitamente ordinrios e podem ser
manipulados pelo computador. Todos os pontos com 0 = w esto no infinito, e definem um plano
no infinito. Logicamente, no possvel converter estes vetores para o espao real, e devem ser
mantidos na forma de coordenadas homogneas.
3.2 TRANSLAO TRIDIMENSIONAL
A translao aplicada a um objeto pelo seu reposicionamento segundo uma trajetria linear. Um
ponto tridimensional transladado, acrescentando-se deslocamentos
x
t ,
y
t e
z
t , a cada uma das
coordenadas. interessante observar que as coordenadas homogneas permitem definir a translao
tridimensional segundo uma transformao matricial, conforme a equao abaixo:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
25
(
(
(
(

+
+
+
=
(
(
(
(

(
(
(
(

1 1 1 0 0 0
1 0 0
0 1 0
0 0 1
z
y
x
z
y
x
t z
t y
t x
z
y
x
t
t
t
( 2 )
3.3 ROTAO TRIDIMENSIONAL
Inicialmente, consideremos uma rotao bidimensional, que em
sua forma mais genrica, aplicada a um objeto reposicionando-
o segundo uma trajetria circular no plano xy . Para definir a
rotao, especifica-se um ngulo de rotao e a posio
( )
c c
Y X , do ponto piv. O ponto piv corresponde ao centro da
trajetria circular que ser descrita pelo objeto. Esta
transformao pode ser entendida como sendo uma rotao
tridimensional ao redor de um eixo paralelo ao eixo z ,
perpendicular ao plano xy .
Antes de atacarmos o problema genrico, examinemos as
equaes de transformao para rotao de um ponto ( ) Y X,
quando o ponto piv corresponde origem das coordenadas. A
relao entre o ponto original ( ) Y X, e o ponto transformado
( ) ' , ' Y X exibida na Figura 3-1. Nesta figura, r a distncia
constante do ponto origem, corresponde posio angular
original em relao horizontal e o ngulo de rotao. Utilizando identidades trigonomtricas,
possvel expressar as transformaes de coordenadas em termos dos ngulos e .
( )
( )

cos cos '
cos cos cos '
+ = + =
= + =
sin r sin r sin r Y
sin sin r r r X
( 3 )
As coordenadas do ponto ( ) Y X, em coordenadas polares so dadas por:

sin r Y
r X
=
= cos
( 4 )
Substituindo estas expresses em ( 3 ), obtm-se a equao de transformao de rotao de um
ponto na posio ( ) Y X, segundo um ngulo em relao origem:


cos '
cos '
+ =
=
Y sin X Y
sin Y X X
( 5 )
(X,Y)

r
r
(X',Y')
Figura 3-1. Rotao do ponto
( ) Y X, em relao origem das
coordenadas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
26
Que pode ser representado segundo a forma matricial abaixo:
(


=
(

Y
X
sin
sin
Y
X


cos
cos
'
'
( 6 )
Segundo consideraes anlogas, possvel definir matrizes de rotaes para os trs eixos
fundamentais: x, y e z. As trs matrizes de transformao para os eixos x, y e z esto,
respectivamente, descritas abaixo:
| | | | | |
(
(
(
(


=
(
(
(
(

=
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 cos
0 0 cos
1 0 0 0
0 cos 0
0 0 1 0
0 0 cos
1 0 0 0
0 cos 0
0 cos 0
0 0 0 1





sin
sin
R
sin
sin
R
sin
sin
R
z y x ( 7 )
3.4 TRANSFORMAES COMPOSTAS
Utilizando a representao matricial, possvel configurar uma matriz para qualquer seqncia de
transformaes calculando-se o produto matricial das matrizes de transformaes presentes na
seqncia de transformaes. Por exemplo, consideremos a determinao da matriz de
transformao referente a uma rotao bidimensional genrica. Neste caso, ser necessrio
transladarmos o objeto de modo que ( )
c c
Y X , coincida com a origem das coordenadas. Em seguida
realizaremos a transformao segundo a matriz de transformao | |
z
R de ( 7 ), e, finalmente,
retornaremos ( )
c c
Y X , posio original. Isto nos conduz seguinte concatenao de matrizes de
transformao:
( )
( )
(
(
(
(


+
=
(
(
(
(

(
(
(
(

(
(
(
(

1 0 0 0
0 1 0 0
cos 1 0 cos
cos 1 0 cos
1 0 0 0
0 1 0 0
0 1 0
0 0 1
1 0 0 0
0 1 0 0
0 0 cos
0 0 cos
1 0 0 0
0 1 0 0
0 1 0
0 0 1




sin x y sin
sin y x sin
y
x
sin
sin
y
x
c c
c c
c
c
c
c
( 8 )
3.5 PROJEES
Os passos para o computador definir uma vista de uma cena tridimensional so: definir o anteparo
onde a cena ser projetada e definir a direo de projeo, no caso de projeo paralela, ou definir o
centro de projeo, o caso de projeo perspectiva.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
27
3.5.1 PROJEO ORTOGRFICA
Esta a mais simples das projees, freqentemente utilizada em desenho tcnico. Projeo
ortogrfica corresponde a uma projeo sobre os planos de coordenadas 0 = x , 0 = y , 0 = z . A
matriz de projeo sobre o plano 0 = z corresponde a:
(
(
(
(

=
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
z
P
( 9 )
As matrizes de projeo sobre os planos 0 = x e 0 = y podem ser obtidos similarmente.
Geralmente uma nica vista ortogrfica no fornece informaes suficientes para reconstruir a
forma do objeto; conseqentemente, so necessrias mltiplas projees ortogrficas. Uma
propriedade da projeo ortogrfica que todo segmento de linha paralelo ao plano xy no possui o
seu comprimento alterado pela projeo ortogrfica.
3.5.2 PROJEO AXONOMTRICA
A projeo axonomtrica uma projeo ortogrfica que exibe mais que uma face do objeto
projetado. A projeo axonomtrica obtida por meio de transformaes (translao e rotao) do
objeto antes de ser feita a projeo ortogrfica. Existem trs casos de projeo axonomtrica de
interesse:
Projeo axonomtrica trimtrica;
Projeo axonomtrica dimtrica;
Projeo axonomtrica isomtrica.
A projeo trimtrica realizada por meio de rotaes arbitrrias em torno dos trs eixos de
coordenadas, seguido de uma projeo ortogrfica. A projeo trimtrica possui a propriedade de
reduzir segundo fatores distintos cada um dos trs eixos fundamentais. Isto , os segmentos de linha
que forem paralelos a um dos trs eixos fundamentais possuiro os seus comprimentos reduzidos
pela projeo trimtrica. Esta reduo chamada por fator de reduo. Os fatores de reduo podem
ser obtidos projetando-se os trs vetores unitrios que definem os eixos fundamentais x , y e z .
Esta projeo est descrita abaixo, considere que os trs vetores unitrios esto em uma matriz
nica 4 3x :
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
28
| |
(
(
(
(

=
(
(
(
(

1 1 1
0 0 0
1 1 1
1 0 0
0 1 0
0 0 1
z y x
z y x
Y Y Y
X X X
T
( 10 )
Os fatores de reduo correspondente projeo dos trs eixos principais so:
2 2
2 2
2 2
z z z
y y y
x x x
Y X f
Y X f
Y X f
+ =
+ =
+ =
( 11 )
Uma projeo dimtrica uma projeo trimtrica onde dois dos fatores de reduo dos trs eixos
principais so iguais e o terceiro arbitrrio. A matriz de projeo dimtrica definida por uma
rotao em torno do eixo y de um ngulo e por uma rotao em torno do eixo x de um ngulo
e projetando-se o objeto sob o plano 0 = z definida por:
| |
(
(
(
(

(
(
(
(

(
(
(
(

=
1 0 0 0
0 cos 0
0 0 1 0
0 0 cos
1 0 0 0
0 cos 0
0 cos 0
0 0 0 1
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1




sin
sin
sin
sin
T
( 12 )
Multiplicando-se pelos vetores unitrios segundo os trs eixos principais:



2 2 2 2
2 2
2 2 2 2
cos
cos
cos
sin sin f
f
sin sin f
z
y
x
+ =
=
+ =
( 13 )
Igualando as equaes algbricas dos fatores de reduo
x
f e
y
f obtemos:

2
2
2
1 sin
sin
sin

= ( 14 )
Substituindo este fator na expresso
z
f possvel obter:
( ) 0 2 2
2 2 4
= + +
z z
f sin f sin ( 15 )
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
29
O valor de 1
2
= sin fornece um absurdo para
2
sin e, portanto, pode ser descartado. Logo a nica
soluo
2 2
5 , 0
z
f sin = . Substituindo este resultado em ( 14 ) obtm-se:
|
|
.
|

\
|

=
2
2
z
z
f
f
arcsin
( 16 )
Estes resultados demonstram que
z
f deve estar na faixa 1 0
z
f .
Em uma projeo isomtrica os trs fatores de reduo dos eixos principais devem ser idnticos.
Considerando a mesma sequncia do exemplo anterior, obtemos:
2
1
3
1
2
2
=
=

sin
sin
( 17 )
De fato, a projeo isomtrica o caso especial de projeo dimtrica com 8165 , 0 =
z
f . O ngulo
que a projeo do eixo x faz com a horizontal muito importante para a criao de manuais de
projeo isomtrica. Transformando o vetor unitrio do eixo x nos fornece sin = tan . O ngulo
entre a projeo do eixo x e a horizontal vale
D
30 = .
3.5.3 PROJEO OBLQUA
Em contraste s projees ortogrficas e axonomtricas onde a direo de projeo perpendicular
ao plano de projeo, a projeo oblqua definida por uma direo de projeo oblqua ao plano de
projeo. Duas projees oblquas so de particular interesse:
Cavaleira
Cabinete
A projeo cavaleira obtida quando o raio de projeo
possui um ngulo de inclinao de
D
45 com o plano de
projeo. Em uma projeo cavaleira os fatores de reduo
dos trs eixos fundamentais so iguais. A projeo cabinete
aquela em que o fator de reduo dos segmentos de linha
perpendiculares ao plano de projeo 5 , 0 . Para a
projeo cabinete o ngulo entre a direo de projeo e o
plano de projeo ( )
D
43 , 63 5 , 0 cot
1
=

.
O ponto ( ) Z Y X , , da Figura 3.2 projetado para a posio
( )
p p
Y X , sobre o plano de projeo. As coordenadas de
projeo ortogrfica do ponto ( ) Z Y X , , so ( ) Y X, . A

(X,Y,Z)
(X,Y)
(X
p
,Y
p
)
Figura 3-2. Projeo oblqua.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
30
linha de projeo oblqua de ( ) Z Y X , , a ( )
p p
Y X , faz um ngulo com a linha sobre o plano de
projeo que une ( )
p p
Y X , a ( ) Y X, . Esta linha, de comprimento L , est a um ngulo com a
direo horizontal no plano de projeo. possvel expressar as coordenadas da projeo em
termos de X , Y , L e como:

sin L Y Y
L X X
p
p
+ =
+ = cos
( 18 )
O comprimento L depende do ngulo e da coordenada Z do ponto a ser projetado:
L
Z
= tan
( 19 )
ento
f Z
Z
L = =
tan
( 20 )
Onde f o inverso de tan que tambm o valor de L quando 1 = z . possvel escrever as
equaes da projeo oblqua como:
( )
( )

sin f Z Y Y
f Z X X
p
p
+ =
+ = cos
( 21 )
A matriz de transformao para produzir qualquer projeo oblqua no plano de projeo escrita
como:
| |
(
(
(
(

(
(
(
(

=
1 0 0 0
0 1 0 0
0 1 0
0 cos 0 1
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1

sin f
f
P
ob
( 22 )
Se
D
90 0 = = f e resulta-se em uma projeo ortogrfica. Se 1 = f , as arestas perpendiculares
ao plano de projeo no sofrem reduo, que a condio para projeo cavaleira. A projeo
cabinete obtida por um fator de reduo 5 , 0 = f .
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
31
3.5.4 PROJEO PERSPECTIVA
Em contraste projeo paralela, na projeo perspectiva as
linhas paralelas convergem para um ponto denominado por
ponto de fuga, e o tamanho dos objetos reduzido medida
que distncia ao plano de projeo aumenta.
Vamos determinar uma transformao perspectiva simples a
partir da Figura 3-3, onde o olho est a uma distncia de D em
relao origem. Para um ponto arbitrrio no espao
| |
T
Z Y X , ns desejamos encontrar a sua projeo
perspectiva no plano XY, que ns denominaremos por
| |
T
s s
Y X . Utilizando semelhana de tringulos ns
obtemos:
D Z
Y
D
Y
D Z
X
D
X
s s
+
=
+
= ( 23 )
assim,
1 1 +
=
+
=
D
Z
Y
Y
D
Z
X
X
s s
( 24 )
Isto no uma transformao linear. Entretanto, podemos associar a diviso existente nas
coordenadas homogneas fazendo a seguinte igualdade:
s
s
s
s
s
s
w
y
D
Z
Y
Y
w
x
D
Z
X
X =
+
= =
+
=
1 1
( 25 )
assim,
Y
s
D
olho
(Y,Z)
Z
Y
Figura 3-3. Geometria da
Transformao Perspectiva.
z
w
x
z
w
x
3DHP 3DH
z
w
x
3DP
Figura 3-4. Vistas homogneas da transformao de um
quadrado.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
32
(
(
(
(

=
(
(
(
(

(
(
(
(
(

s
s
s
s
w
z
y
x
Z
Y
X
D
1
1
1
0 0
0 1 0 0
0 0 1 0
0 0 0 1
( 26 )
No espao homogneo, a transformao perspectiva um simples escalamento na direo w.
Definindo-se quatro espaos de coordenadas possvel fornecer uma outra interpretao para a
projeo perspectiva: ela envolve uma transformao perspectiva e uma projeo ortogrfica.
Vamos fornecer nomes para cada um dos espaos e um ponto cannico para cada espao:
3D - espao real antes da transformao perspectiva, | |
T
Z Y X .
3DH - espao homogneo antes da transformao perspectiva. Ele criado,
geralmente, acrescentando uma coordenada w=1 ao final de cada vetor do espao real,
assim um ponto representado por | |
T
Z Y X 1 . Assim, os objetos neste espao
esto, geralmente, no hiperplano w=1 do espao quadridimensional.
3DHP - espao homogneo aps a transformao perspectiva. Os objetos no esto
mais apenas no hiperplano w=1 e, portanto, possuem coordenadas genricas
| |
T
s s s s
w z y x .
3DP - espao real aps a transformao perspectiva. apenas o espao acima com as
coordenadas divididas por w
s
. Um ponto possui
coordenadas | |
T
s s s
Z Y X .
Os pontos no espao 3DH (com coordenadas w=1) so
escalados formando o espao 3DHP. Em seguida, eles so
projetados de volta para w=1 para definir o espao 3DP.
Observe que os pontos no plano Z=0 no so movimentados,
que o ponto | |
T
D 1 0 0 transformado para o infinito e
que um ponto no infinito | |
T
D 0 0 0 transformado para
um ponto local. Agora, quanto s coordenadas X e Y? Observe a
Figura 3-4. Aqui, ns estamos exibindo apenas x, z e w; para a
coordenada y tudo funciona de forma semelhante. Ns iniciamos
com um quadrado. A transformao perspectiva escala o
quadrado em w. Dividindo as coordenadas por w distorcemos o
quadrado em um trapzio.
Para auxiliar a compreenso dos efeitos da transformao
perspectiva observe a Figura 4.5. Nesta figura possvel
observar que a projeo perspectiva da linha AB originalmente
paralela ao eixo z , resultou na linha
* *
B A sobre o plano 0 = z .
Esta transformao pode ser considerada o resultado de duas
etapas. A transformao perspectiva da linha AB resultou na
A
A
*
A
B
Ponto de Fuga
Centro de Projeo
B
B
*
Figura 3-5. Transformao
perspectiva.
z
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
33
linha ' ' B A ; a projeo ortogrfica da linha ' ' B A sobre o plano 0 = z resultou na linha
* *
B A .
Observando-se a Figura 4.5, a linha AB intercepta o plano 0 = z no mesmo ponto em que a linha
' ' B A intercepta o mesmo plano. Ela tambm intercepta o eixo z no ponto
D
z
1
= . Portanto, a
transformao perspectiva transformou um ponto no infinito na linha AB , paralela ao eixo z , em
um ponto finito em
D
z
1
= sobre o eixo z . Este ponto chamado de ponto de fuga. Observe que o
plano de projeo fica no meio entre o ponto de fuga e o centro de projeo.
Isto significa que todo o semi-espao positivo relativo direo positiva do eixo z , foi
transformado no espao positivo contido entre as coordenadas
D
z
1
0
*
. E, tambm, que todas
as linhas paralelas ao eixo z passam pelo ponto | |
T
D
1
1
0 0 que o ponto de fuga.
3.6 HIERARQUIA E TRANSFORMAES ENCADEADAS
At o momento, discutimos sobre
transformaes tridimensionais como operaes
que movimentam objetos de uma posio para
outra utilizando-se de um sistema de referncia
nico. Entretanto, com freqncia, desejamos
converter coordenadas de um sistema de
referncia para outro. Um exemplo do uso de
mltiplos sistemas de coordenadas ilustrado na
Figura 3-6. Neste exemplo, cada pndulo possui
o seu eixo de rotao prprio. Cada pndulo
pode ser definido como a composio de uma
esfera com um cilindro, e a estes dois objetos
associa-se um grupo que possui um sistema de
referncia associado. Assim, toda transformao
aplicada a este grupo ser aplicada aos dois
objetos que o compem. Facilitando, assim, a definio das transformaes associadas a cada
pndulo.
Figura 3-6. Exemplo de um pndulo, onde cada
pndulo possui um eixo prprio de rotao.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
34
Para explicar o significado de hierarquia, vamos considerar a modelagem da mo humana. Voc
possui cinco dedos. Cada um dos dedos conectado sua mo. A mo conectada ao seu antebrao
que, por sua vez, conectado ao seu brao. Finalmente, o conjunto completo conectado ao seu
ombro. Se estivessemos modelando o corpo humano, vide Figura 3-7, utilizaramos o mesmo tipo
de hierarquia. Entretanto, voc poderia perguntar: como isto me ajudaria? Bem, considere que voc
deseja animar este brao. Se os objetos estiverem totalmente desconectados, voc deveria
posicionar cada parte do brao completo segundo a sua posio apropriada. Com uma hierarquia
estabelecida, voc inicia posicionando o objeto de hierarquia mais alta: o brao. Quando voc
realiza este posicionamento, todos os objetos abaixo deste na hierarquia sero transformados
segundo a mesma transformao. Voc deve continuar com o mesmo processo objeto abaixo na
hierarquia at que todos os objetos estejam posicionados na forma desejada.
Figura 3-7. Exemplo de um corpo
humano modelado.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
35
4. MODELAGEM DE SLIDOS
Um modelo um objeto construdo de forma artificial que facilita a observao de um objeto de
interesse. Os desenhos tcnicos, vastamente utilizados em engenharia, so modelos, uma vez que as
pessoas capacitadas podem interpretar as informaes contidas nas colees de imagens
bidimensionais e nos simbolismos para representar dimenses, tolerncias e caractersticas de
superfcie, dentre outras informaes contidas nos desenhos tcnicos.
Muitos mtodos de modelagem geomtrica tm sido utilizados para representar formas
tridimensionais. As tcnicas mais conhecidas e utilizadas nos sistemas CAD para engenharia
mecnica so a modelagem por fio de arame (wireframe modeling), os modelos por superfcies
(surface modeling) e a modelagem de slidos (solid modeling). Vrias tcnicas de modelagem de
slidos foram propostas na literatura. As mais utilizadas so a representao B-Rep (Boundary
Representation) e a representao CSG (Construtive Solid Geometry).
4.1 MODELAGEM POR FIO DE ARAME
Um modelo de fio de arame representado por listas de arestas que por sua vez contm pontos.
Cada ponto tambm uma lista que contm suas respectivas coordenadas (valores x, y, z). Para
um projetista acostumado ao desenho tcnico, esta a representao mais natural de um objeto,
uma vez que so as retas e curvas em um desenho que definem a forma tridimensional. A grande
vantagem desta representao a sua simplicidade. Na prtica esta caracterstica reflete-se na
reduzida quantidade de memria utilizada e no curto tempo de acesso e processamento
computacional. A principal desvantagem da modela-gem por fio de arame o fato dela ser
ambgua. A Figura 4-1 ilustra este tipo de
ambigidade, onde um modelo pode ser
associado a mais que um objeto real. Outra
desvantagem ocorre quando necessrio
representar objetos que possuem muitas
arestas, uma vez que sua visualizao torna-se
confusa e em alguns casos impossvel de ser
interpretada.
A representao por fio de arame j classifica
as informaes do modelo em informaes
geomtricas e topolgicas. Para compreender
esta classificao, apresentam-se duas
possveis implementaes em linguagem C
para a representao por fio de arame. Na
primeira implementao, definem-se dois
elementos primitivos: vrtice e linha (vide
Listagem 4-1). Um vrtice definido por suas
trs coordenadas: x, y e z. Uma linha
representada pelos dois vrtices que a
Figura 4-1. Um modelo ambguo.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
36
delimitam.
typedef struct {
float vx, vy, vz;
} ponto ;
typedef struct {
ponto p1;
ponto p2;
} linha ;
Listagem 4-1 Primeira implementao para a Representao por Fio de Arame.
Quando um modelo possuir mltiplas linhas, esta proposta apresentar um armazenamento
ineficiente devido possibilidade de existirem vrias linhas com compartilhamento de vrtices.
Alm do mais, o compartilhamento de vrtices s poderia ser detectado pela comparao numrica
das coordenadas, que uma operao computacionalmente arriscada. Uma forma de estruturar a
informao, evitando a necessidade de cpias mltiplas, ilustrada no trecho de cdigo da Listagem
4-2, onde os vrtices de uma linha so referenciados por meio de ponteiros.
typedef struct {
ponto *p1;
ponto *p2;
} linha ;
Listagem 4-2 Segunda implementao para a Representao por Fio de Arame.
A diferena entre estas duas estruturas, sob o
ponto de vista de implementao, mnima.
Entretanto, a representao do
compartilhamento dos vrtices entre as
arestas permite definir algoritmos mais
robustos para editar modelos. Assim, ao
selecionar-se um vrtice e alterar suas
coordenadas, todas as linhas que
compartilham este vrtice sero alteradas
(vide Figura 4-2). Informalmente, a
informao sobre o compartilhamento de
elementos denominada por informao topolgica.
Figura 4-2 Informao topolgica: linhas
compartilhando um vrtice. Ao movimentarmos um
vrtice, todas as linhas associadas a este vrtice so
alteradas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
37
4.2 MODELAGEM POR SUPERFCIE
A modelagem por superfcies, alm das
listas de arestas e pontos, presentes na
modelagem por fio de arame, possui
tambm uma lista de faces. A Figura 4-3
apresenta alguns exemplos de modelos
de superfcie. A modelagem por
superfcies considerada uma exteno
da modelagem por fio de arame. Esta
tcnica possibilita a definio de
algoritmos para remover linhas
escondidas, bem como, de algoritmos de
visualizao como a eliminao de
superfcies escondidas.
4.3 MODELOS SLIDOS
Embora alguns autores afirmem que um modelo slido no pode ser definido segundo a tcnica de
modelagem por superfcie, importante notar que isto no totalmente verdadeiro. Um modelo
slido representado por um conjunto de faces coerentemente orientadas, com vetores normais das
faces apontando para o exterior do slido, por exemplo. As informaes topolgicas, no caso de
representao por superfcie, podem ser obtidas por mtodos algortmicos. Entretanto, situaes de
ambigidade podem ocorrer (vide Figura 6.4). O problema consiste na verificao da existncia ou
no de compartilhamento de elemento entre as faces f
1
e f
2
.
Um modelo slido, por conter informaes
sobre o compartilhamento de elemento entre
as faces, capaz de informar sem
ambigidade qual a relao existente entre
estas duas faces. J um modelo por superfcie,
por interpretar a topologia do objeto de forma
algortmica, no ser capaz de gerar a mesma
informao sem incorrer em ambigidade
(mais de uma interpretao). A seguir
discutiremos as duas formas de representao
para modelagem de slidos mais
significativas: CSG e B-Rep.
REPRESENTAO CSG
Na representao CSG, um slido definido pela combinao de slidos simples. Estes slidos
simples so chamados primitivos. Um slido representado segundo uma rvore binria onde as
suas folhas so os primitivos e os ns internos so operadores booleanos que relacionam os dois ns
f1 f2
Figura 4-3. Exemplos de modelos de superfcie.
Figura 4-4. Ambigidade em modelos por superfcie.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
38
inferiores. A construo de modelos CSG combinando primitivos por operadores booleanos
relativamente fcil, pois uma tarefa intuitiva. A Figura 4-5 (a) mostra um exemplo de slido com
representao CSG. O slido E definido pela combinao dos slidos A e B, por meio de uma
operao de interseco. O slido F definido pela diferena entre os slidos C e D. Finalmente, o
slido G definido pela unio dos slidos E e F. Este processo seqencial de modelagem
representado por uma rvore binria denominada rvore CSG, ilustrada na Figura 4-5 (b).
A rvore CSG declarativa, possuindo uma descrio implcita do slido representado. Assim,
necessrio process-lo para obtermos uma sada grfica. A estrutura do modelo em rvore facilita a
definio de algoritmos do tipo diviso e conquista (divide-and-conquer). Segundo esta proposta as
duas sub-rvores de um n so processadas recursivamente, e as solues parciais so combinadas
para obtermos a soluo combinada. A recurso da rvore termina quando as folhas da rvore so
atingidas, que envolve o acionamento de procedimentos especficos para cada tipo de primitivo

A B D C
-

E F
G
(a) (b)
Unio
Interseco Diferena
A B D C
E F
G
Figura 4-5. Representao CSG de um slido.
Interseco
Resultado a partir do slido em L
Resultado a partir do retngulo
Resultado final
Figura 4-6. Determinando a regio da reta interna ao slido CSG as regies
internas esto em negrito e as demais regies so externas.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
39
disponvel no sistema em questo. Uma outra proposta natural para manipular algoritmos CSG
baseado em tratar a rvore CSG como uma expresso booleana e utilizar a lgica booleana para
manipul-la. A seguir forneceremos um exemplo para ambas as tcnicas.
Consideremos o exemplo de determinar a regio de interseco entre uma reta e um slido CSG. A
idia bsica classificar a reta em relao cada slido primitivo que compe a rvore CSG,
significando que a reta subdividida em regies internas e externas cada slido primitivo. Um
pseudo-cdigo est ilustrado na listagem 4-3, o processo de classificao pode ser executado
recursivamente processando as sub-rvores esquerda e direita separadamente e combinando as
duas solues parciais obtidas. A recurso termina ao atingirmos os primitivos. As duas solues
obtidas so combinadas como exemplifica a Figura 4-6, de modo a obtermos a regio da reta que
interna ao slido CSG.
/* Avalia a propriedade de uma rvore S */
P *Tree_P(CSG_Tree *S, args)
{
if (S->op == <primitivo>)
return primitivo_P(S, args);
else
return combina_P(Tree_P(S->left, args),
Tree_P(S->right, args), S->op);
}
/* Combina as duas avaliaes de P de acordo com a
operao booleana */
P *Combina_P(CSG_Tree *left_P, CSG_Tree *right_P,
int Op)
{ ... }
/* Avalia P para um primitivo */
P *Primitivo_P(CSG_Tree *S, args) { ... }
Listagem 4-3. Algoritmo baseado em diviso e conquista para processar slidos CSG.
REPRESENTAO B-REP
A representao B-Rep armazena detalhes de como as faces, arestas e vrtices de um slido se
unem para representar um slido. Um slido representado em modelo B-Rep deve possuir, por
exemplo, a capacidade de descrever como cada face est conectada as suas faces adjacentes, de
modo a formar um volume totalmente fechado no espao. Nos modelos CSG, a informao de
adjacncia entre faces pode ser obtida por tcnicas numricas que analisam as proximidades
geomtricas de seus componentes; contudo, estas tcnicas, geralmente, envolvem um custo
computacional considervel alm de apresentarem problemas de preciso numrica. Nos modelos
B-Rep estas informaes esto presentes de forma explcita na estrutura de dados.
Os trs tipos de elementos bsicos de um slido (face, aresta e vrtice) e a informao geomtrica
relacionada aos mesmos formam os constituintes bsicos dos modelos B-Rep. Junto com as
informaes geomtricas, como equaes do plano das faces e coordenadas de vrtice, um modelo
B-Rep deve tambm representar a relao entre as faces, arestas e vrtices. Normalmente as
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
40
informaes geomtricas dos elementos de um slido so denominadas por geometria do modelo B-
Rep, enquanto as informaes sobre o compartilhamento dos elementos bsicos so denominadas
informalmente por topologia do modelo. Pode-se dizer que a topologia funciona como uma goma
onde as informaes geomtricas so aglutinadas; ou ento que as informaes topolgicas criam
um vigamento no qual as informaes geomtricas so posicionadas.
A Figura 4-7 ilustra os componentes bsicos de um modelo B-Rep. Na figura, a superfcie
dividida em conjuntos fechados de faces (a); cada face representada atravs de um polgono de
contorno (b), que pode ser representado em termos de arestas e vrtices (c).
NVEIS DE ABSTRAODE UM MODELADOR DE SLIDOS B-REP
Num sistema de modelagem de slidos
podemos definir trs nveis de representao
de um slido. O primeiro nvel, o nvel mais
alto de abstrao, interage com o usurio
atravs de operaes para construir, modificar
e armazenar os slidos. Neste nvel, o slido
descrito por um conjunto de operaes de alto
nvel, que permite o interfaceamento com o
usurio. Entre o primeiro nvel e o segundo
nvel de implementao, localiza-se toda a
infra-estrutura matemtica e algortmica do
sistema de modelagem que suportam e tornam
executveis as operaes disponibilizadas ao
usurio no primeiro nvel. No segundo nvel,
o slido descrito por um conjunto de
operadores especficos, denominados por
Operadores de Euler, que sero discutidos
com detalhes frente. No terceiro nvel, o
nvel inferior de abstrao, o slido
(a) Slido (c) Arestas e vrtices (b) Faces
Figura 4-7. Componentes bsicos de um modelo por fronteira.
VF EF FF
VV EV FV
VE EE FE
Figura 4-8. Relaes de adjacncia.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
41
representado por uma estrutura de dados computacional. Por ser uma representao de modelos
slidos, a representao B-Rep precisa armazenar informaes de como as faces, as arestas e os
vrtices de um slido esto compartilhados (relaes de adjacncia). As nove relaes de
adjacncia, definidas pela combinao dois a dois entre os trs elementos primitivos da
representao B-Rep, podem ser visualizadas na Figura 4-8. Nesta figura, a relao VV entre um
vrtice e outros vrtices que com este definem uma aresta, a relao EV entre uma aresta e os dois
vrtices que a definem, a relao FV entre uma face e os vrtices que a definem, a relao VE
entre um vrtice e as arestas limitadas por ele, a relao EE entre uma aresta e as outras quatro
arestas que possuem a mesma face como contorno, a relao FE entre uma face e as arestas que a
limitam, a relao VF entre um vrtice e as faces que o possuem, a relao EF entre uma aresta e
as duas faces que ela separa e finalmente, a relao FF entre uma face e as outras que a
circundam.
ESTRUTURA DE DADOS
Nesta sesso apresentam-se trs estruturas de dados que foram muito utilizadas na literatura para
implementar a representao B-Rep. As estruturas esto baseadas na aresta como elemento de
referncia: estrutura winged-edge, estrutura half-edge e estrutura unificada.
A estrutura winged-edge mantm as informaes de adjacncia por meio de ponteiros a vrios
elementos adjacentes aresta de referncia: duas faces, dois vrtices e quatro arestas. Cada uma das
quatro arestas compartilha com a aresta de
referncia um vrtice e uma face. (vide Figura 4-
9). Durante um perodo relativamente longo,
apesar da estrutura winged-edge ter sido
largamente utilizada por pesquisadores de
modeladores de slidos, pouca coisa foi feita para
racionalizar analiticamente a sua eficincia.
Observe que algumas relaes de adjacncia
envolvem um nmero varivel de elementos. A
relao de adjacncia FE, por exemplo, requer um
nmero varivel de arestas. A Figura 4-10 ilustra
uma pirmide de quatro lados, e possumos faces
com trs e quatro arestas
adjacentes. Nesta figura possvel
observar que as arestas definem
um circuito direcional ao redor da
face. Por exemplo, a seqncia de
arestas e
1
, e
2
, e
3
e e
4
define o
circuito direcional das arestas da
face f
1
. Tambm possvel
observar que cada aresta participa
em dois circuitos direcionais e em
sentidos opostos. Por exemplo, a
aresta e
1
participa dos circuitos
v1
v2
f2 f1
ahr1 hr2
ahr2 hr1
Tabela da aresta
v1 v2
hr1 hr2
ahr1 ahr2
f1 f2
(a) (b)
hr
= aresta no sentido horrio
ahr
= aresta no sentido anti-horrio
Figura 4-9. Estrutura winged-edge.
e
5
face
F
1
F
2
F
3
F
4
F
5
arestas
e
1
e
4
e
3
e
2
e
2
e
7
e
8
e
3
e
8
e
7
e
4
e
5
e
6
e
1
e
6
e
5
e
8
e
4
e
3
e
2
e
6
e
7
e
1
F
1
F
3
F
2
F
4
F
5
Figura 4-10. Estrutura de dados baseada na relao FE.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
42
direcionais das faces f
1
e f
5
em sentidos complementares.
Algumas relaes de adjacncia envolvem um nmero constante de elementos adjacentes, no
importando a situao. A relao de adjacncia EV, por exemplo, envolve exatamente dois vrtices
para cada aresta. conveniente que as relaes de adjacncia armazenadas explicitamente na
representao possuam um nmero constante de elementos adjacentes. Este critrio aplica-se a trs
relaes de adjacncia: EV, EE e EF. Combinando estas trs relaes de adjacncia descobrimos a
estrutura winged-edge.
A estrutura winged-edge possui tambm a relao de adjacncia fracional. Ao invs de armazenar
todas as arestas pertencentes relao de adjacncia FE para cada face, ela armazena apenas uma
aresta pertencente relao para cada face. A relao de adjacncia FE cria um conjunto de
armazenamento proporcional ao nmero de faces e independente do nmero de arestas associadas
s vrias faces.
Na estrutura winged-edge, as arestas assumem
duas funes principais: representar o circuito
direcional de faces e representar a aresta
propriamente dita. A juno destas duas
funcionalidades numa nica estrutura causa uma
deficincia computacional. Esta deficincia
clara, em particular, quando as arestas devem ser
referenciadas pelo procedimento que percorre
seqencialmente o circuito direcional de arestas
de cada face. A necessidade deste algoritmo
surge com freqncia em operaes grficas ou
geomtricas aplicadas ao modelo representado.
Percorrer o circuito de arestas de uma face uma operao unidirecional, devido prpria
orientao do circuito de arestas. Na estrutura winged-edge cada aresta utilizada para delimitar
duas faces; portanto, cada aresta participa de dois circuitos orientados. Como os dois circuitos
possuem orientaes opostas entre si, cada aresta percorrida sempre duas vezes e em direes
opostas. Entretanto, necessrio verificar e determinar a direo em que cada aresta est sendo
percorrida a cada passo do percurso, um
processo que aumenta consideravelmente o
custo de tempo do procedimento e implicar no
desenvolvimento de algoritmos complexos
quando estiverem em ambiente curvo.
Este problema foi solucionado pela separao
das duas principais funes da aresta. Esta
separao foi obtida pela diviso de cada
winged-edge em duas metades. A conectividade
entre ambas as metades mantida por um
ponteiro que referencia a metade oposta.
Existem duas possibilidades para realizarmos
v
f
ahr
oma
hr
Tabela da half-edge
v
hr
ahr
f
oma
(a) (b)
hr = aresta no sentido horrio
ahr = aresta no sentido anti-horrio
oma = outra meia-aresta
Figura 4-11. Estrutura face-aresta.
v
f
ahr
oma
hr
Tabela da meia-aresta
v
hr
ahr
f
oma
(a) (b)
hr = aresta no sentido horrio
ahr = aresta no sentido anti-horrio
oma = outra meia-aresta
Figura 4-12. Estrutura vrtice-aresta.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
43
esta separao: estrutura face-aresta (Figura 4-11) e estrutura vrtice-aresta (Figura 4-12). A
definio da estrutura face-aresta foi feita baseando-se na relao de adjacncia FE. Em
contrapartida, a estrutura vrtice-aresta foi baseada na relao de adjacncia VE.
Em cada estrutura half-edge est sendo representada a metade das informaes de adjacncia da
estrutura winged-edge. Cada half-edge possui apenas uma orientao, e cada face possui um
circuito direcional de half-edges.
Para evitar a duplicidade das informaes associadas aresta (por exemplo, atributo de cor) nas
duas half-edges, foi proposta a criao de uma nova estrutura para a aresta que associaria a duas
half-edges que definem a aresta de
referncia, evitando assim o ponteiro
para a outra half-edge.
At este momento, foi assumido que
cada face possui apenas um contorno.
Entretanto, casos prticos requerem que
uma face possua mais de um contorno
(como uma face com furos). Faces com
mais de um contorno podem ser
simuladas pela tcnica de aresta-ponte
(bridge-edge) no qual uma aresta une os
contornos de uma face entre si. A aresta-
ponte, portanto, possui a mesma face
adjacente em ambas as laterais (vide
Figura 4-13 (a)).
Entretanto, a tcnica aresta-ponte no
muito eficiente porque ser necessrio
determinar como os contornos devem
ser conectados pelas arestas-ponte, o que
criar a necessidade de complexos
lao externo
laos internos
aresta ponte
(a) (b)
Figura 4-13. Extenso para faces com mltiplos contornos.
shells
Figura 4-14. Slido com dois shells.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
44
algoritmos para implementar operaes
de modelagem. Como exemplo,
podemos citar as Operaes Booleanas
que provavelmente interseccionaro as
arestas-ponte. Alteraes na estrutura de
dados half-edge de maneira a suportar
faces com mais de um contorno no
afetaro a estrutura B-Rep ao nvel de
aresta, mas sim, ao nvel de face. Uma
tcnica muito comum adicionar uma
estrutura de tamanho fixo chamada lao
(loop) que associada a cada contorno
da face. A estrutura lao simplesmente
fornece estrutura face um mecanismo
para manter uma lista ligada de
ponteiros para os seus mltiplos contornos.
Cada face possui um lao externo e zero ou
mais laos internos (vide Figura 4-13(b)).
Devido ao formalismo das Operaes
Booleanas, ao combinarmos dois slidos por
uma Operao Booleana, o resultado ser
sempre apenas um slido. Entretanto, mesmo
em situaes especiais, como a situao
exemplificada na Figura 4-14, onde o
resultado da Operao Booleana aparenta
apresentar dois slidos, o resultado
considerado como sendo apenas um slido.
Entretanto, nesta situao em especial,
considera-se que o slido resultante possui
dois shells. Em outras palavras, para representar esta situao especial, foi criado o elemento shell
que representa conjuntos disconexos de faces no espao. A Figura 4-16 ilustra a hierarquia da
estrutura half-edge resultante.A Figura 4-15 ilustra os elementos primitivos de um modelo slido.
OPERADORES DE EULER
Por conterem informaes sobre as adjacncias entre os elementos primitivos, as estruturas
computacionais anteriormente expostas so bastante complexas e a sua manipulao exige muitos
cuidados para que a consistncia dos dados seja mantida. Para contornar este problema, um
conjunto de operadores foi desenvolvido com o objetivo de tornar a manipulao das estruturas de
dados da representao B-Rep mais intuitiva. Eles permitem que a construo do slido possa ser
executada passo a passo, escondendo todos os detalhes de implementao da estrutura de dados.
Estes operadores formam o segundo nvel de representao do modelador.
A equao de Euler-Poincar diz que um slido polidrico topologicamente vlido se a seguinte
relao entre as suas quantidades de elementos for verificada:
Lao
Face
Shell
Slido
Lao
Face
Shell
Meia-aresta Meia-aresta Meia-aresta
Vrtice Vrtice
Slido
Aresta
Figura 4-16. Vista hierrquica da estrutura half-edge.
Shell
Shell
Lao interno
ou anel
Lao externo
Face
Aresta
Vrtice
Slido
Figura 4-15. Elementos topolgicos de um modelo slido.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
45
( ) v e f s h l + = + 2 2 ( 1 )
onde v o nmero de vrtices do slido, e o nmero de arestas, f o nmero de faces, s o nmero
de shells, h o nmero de furos e l o nmero de laos. A forma mais conhecida na literatura da
equao de Euler-Poincar supe ainda a existncia de r anis no slido, onde f l r = . Ficando a
equao da seguinte forma:
( ) v e f s h r + = + 2 ( 2 )
Vrios autores demonstram que seis operadores so suficientes para construir todos os objetos.
Enquanto estes seis operadores podem ser escolhidos de vrias maneiras, consideraes de
modularidade e independncia criaram apenas pequenas variaes na coleo encontrada na
literatura. Com a finalidade de facilitar a memorizao, os Operadores de Euler esto definidos
utilizando a nomenclatura da Tabela 1.
Tabela 1. Nomenclatura dos Operadores de Euler
Smbolo Significado Smbolo Significado
M make F face
K kill S shell
V vertex H hole
E edge R ring
Por exemplo, o nome MEV deve ser traduzido por Make Edge, Vertex (Cria uma aresta e um vrtice).
A seguir foram selecionados e esto descritos os seis operadores mais comumente utilizados na
literatura e uma representao grfica para cada operador pode ser observada na Figura 4-17.
MVSF (Make Vertex Solid Face): este operador cria um slido inicial com apenas uma
face e um vrtice;
MEV (Make Edge Vertex): este operador adiciona a um slido uma aresta e um vrtice.
A aresta criada conectando-se um vrtice j existente ao novo vrtice criado;
MEF (Make Edge Face): este operador adiciona ao slido uma aresta e uma face. A
face criada pela diviso de uma face j existente acrescentando-se a nova aresta;
KEMR (Kill Edge Make Ring): este operador divide o contorno de uma face em dois
laos pela remoo de uma aresta-ponte;
KFMRH (Kill Face Make Ring Hole): nenhum dos operadores discutidos anteriormente
capaz de modificar as propriedades topolgicas globais da estrutura de dados, como
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
46
dividir um slido em dois componentes ou criar um furo passante. O operador KFMRH
possui este objetivo;
MSFKR (Make Shell Face Kill Ring): este outro operador que manipula informaes
globalmente. Ele transforma o anel de uma face em uma nova face, e todo o conjunto
de faces associadas nova face constituir um novo shell;
Os seis operadores detalhados acima so todos construtivos; entretanto, para que o slido possa ser
alterado satisfatoriamente ele precisa tambm de algumas operaes destrutivas. Por isto, cada
operador construtivo possui um operador correspondente destrutivo. So eles:
KVSF (Kill Vertex Solid Face) MVSF (Make Vertex Solid Face)
KEV (Kill Edge Vertex) MEV (Make Edge Vertex)
KEF (Kill Edge Face) MEF (Make Edge Face)
MEKR (Make Edge Kill Ring) KEMR (Kill Edge Make Ring)
MFKRH (Make Face Kill Ring Hole) KFMRH (Kill Face Make Ring Hole)
KSFMR (Kill Shell Face Make Ring) MSFKR (Make Shell Face Kill Ring)
novo vrtice
nova aresta
nova aresta
Aresta (a excluir)
Face f2 (a excluir)
MEV
(Make Edge Vertex)
MEF
(Make Edge Face)
KEMR
(Kill Edge Make Ring)
KFMRH
(Kill Face Make Ring Hole)
Face f1
MSFKR
(Make Shell Face Kill Ring) novo shell
nova face
nova face
novo vrtice
novo slido
novo anel
novo anel
MVSF
(Make Vertex Solid Face)
Figura 4-17. Representao grfica dos Operadores de Euler.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
47
Durante o processo de construo de um
slido pela utilizao de Operadores de
Euler, a validade topolgica do mesmo
mantida observando-se a equao de
Euler-Poincar. Entretanto, comum o
agrupamento de Operadores de Euler
em uma certa seqncia para mantermos
tambm a geometria vlida.
importante observar que no h como
manter a geometria vlida em todos os
estgios da construo. Por isto, os
Operadores de Euler devem ser
agrupados em seqncias que possuam
algum significado.
Atravs de um exemplo simples, um
bloco retangular com um furo passante
retangular, possvel ilustrar a
utilizao dos Operadores de Euler
(Figura 4-18).
A combinao de Operadores de Euler
em seqncias com significado
realizada pela interface existente entre o
nvel mais alto de abstrao e o segundo
nvel de abstrao. No nvel mais alto
possumos dois tipos de operadores:
operadores locais e operadores globais.
OPERADORES LOCAIS
Os operadores locais permitem que algumas
caractersticas dos slidos possam ser
modificadas diretamente pelo usurio
preservando as consistncias topolgica e
geomtrica do local modificado. Por no
realizarem alteraes em reas externas
localidade das caractersticas na que eles se
aplicam, no so realizadas verificaes sobre o
slido aps a realizao de uma operao local.
Entretanto, existe a possibilidade de se criar um
mvsf (a) mev (b) mev
mev
(c) mef (d)
mev, mev
mev, mev
(e) mef, mef
mef, mef
(f) mev (g) mev, mev
mev, mef
(h)
kemr (i) mev, mev
mev, mev
(j) mef, mef
mef, mef, kfmrh
(k)
Figura 4-18. Seqncia de Operadores de Euler para
criao de um cubo com furo passante.
Figura 4-19. Um slido auto-interceptante.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
48
slido invlido utilizando-se operadores
locais, como por exemplo, um slido auto-
interceptante (Figura 4-19). No uma tarefa
fcil verificar se um slido auto-
interceptante; geralmente, depende da correta
utilizao destas operaes pelo usurio.
Um operador local pode ser considerado uma
extenso das Operaes de Euler. Um
operador local, ao ser acionado pelo usurio,
definir uma seqncia de Operadores de
Euler que a implemente. Antes de definirmos
os operadores locais, apresentaremos
algumas rotinas bsicas de modelagem.
Cria arco de circunferncia: esta rotina define
uma aproximao poligonal de um arco de
circunferncia, a partir de um ponto fornecido.
Assim, o algoritmo que implementa esta rotina
pode ser definido utilizando-se apenas o
Operador MEV (vide Figura 4-20). Para criar uma
circunferncia, ser necessrio definir um arco
de 360 e o ltimo Operador de Euler MEV deve
ser substitudo por um Operador MEF (vide
Figura 4-21).
Extruso translacional: a extruso translacional deve ser aplicada a uma face e ser realizada
segundo um sentido especfico. Como exemplo de slido primitivo criado por meio deste operador
temos o cubo (vide Figura 4-22(c)), o cilindro (vide Figura 4-22(e)) e o prisma (vide Figura 4-
22(b)). Se estiver disponvel uma funo que degenere uma face em um ponto, ser possvel
criarmos slidos primitivos como o cone (vide Figura 4-22(a)) e a pirmide (vide Figura 4-22(d)).
Extruso rotacional: a operao de extruso rotacional consiste em girar uma figura bidimensional,
com contorno aberto ou fechado, ao redor de um eixo, definindo um slido de revoluo. Como
exemplos de slidos criados por meio deste
operador temos a esfera, o peo de xadrez e o
toride. (vide Figura 4-23).
mvsf mev mev mev mev mev mev
Figura 4-20. Seqncia de Operadores de Euler que
implementam a criao de um arco.
MEF
Figura 4-21. Finalizao da criao de uma
circunferncia.
(a) cone
(e) cilindro (d) pirmide (c) bloco
(b) prisma
Figura 4-22. Slidos obtidos por extruso
translacional.
(c) toride (b) peo (a) esfera
Figura 4-23. Slidos gerados por extruso
rotacional.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
49
Suavizao de arestas e vrtices: este outro exemplo de operador local. Esta operao utilizada
para melhorar a resistncia, a manufaturabilidade, a segurana e a aparncia de um slido. Foram
propostos vrios operadores de suavizao. A Figura 4-24 exibe um slido com algumas arestas
suavizadas utilizando-se destes operadores.
Figura 4-24. Slido com arestas e vrtices suavizados.
OPERADORES GLOBAIS (AVANADOS)
Seco por Plano
A operao de seco por plano a
primeira operao global que ser
apresentada. Esta funo muito
utilizada nos sistemas CAD atuais.
Dentre as suas possveis aplicaes
podemos citar: gerao de isolinhas
com o objetivo de definir camadas
para estereolitografia, definio de
sees de corte para facilitar a sua
visualizao, dentre outras.
Devido ao seu formalismo, ao
aplicarmos este operador a um slido,
sempre obteremos como resultado dois slidos. Portanto, preciso prever as situaes em que um
dos dois slidos resultantes corresponda a um slido nulo (indicando que o slido original est
posicionado completamente de um lado do plano de corte), ou que o slido resultante corresponde a
um slido com vrios shells, conforme o exemplo ilustrado na Figura 4-25. Em um modelador de
slidos polidrico o algoritmo de seco por plano pode ser dividido em cinco etapas (MNTYL,
1988):
Seo 1
Seo 2
Seo 3
Seo 5
Seo 4
Figura 4-25. Um slido seccionado.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
50
Determinao dos pontos de
interseco e insero de vrtices
nestes pontos: o algoritmo verifica
se os vrtices das arestas do slido
esto em lados opostos ao plano
de corte. Se isto ocorre, insere-se
um novo vrtice com as
coordenadas do ponto de
interseco da aresta com o plano.
Este vrtice guardado em uma
lista para posterior processamento.
H casos em que um dos vrtices
da aresta j est sobre o plano de
corte. Se isto ocorrer, armazena-se
este mesmo vrtice. (vide a Figura
6.26 (a)).
Classificao dos vrtices de
interseco: os vrtices
armazenados so classificados
para processar casos especiais
como arestas que esto sobre o
plano de corte ou vrtices sobre o
plano de corte (Figura 4-26 (a)).
Insero de arestas nulas: nos pontos de interseco do slido com plano so inseridas
arestas sem comprimento geomtrico mas com significado topolgico. (vide Figura 4-26
(b)).
Juno e eliminao de arestas nulas: estas arestas marcam os locais onde necessrio
realizar as unies entre suas extremidades para formar as novas faces. Uma vez terminadas
as junes as arestas nulas so removidas. (vide Figura 4-26 (c, d)).
Atualizao das estruturas de dados: a ltima etapa do algoritmo atualiza as listas de arestas
e vrtices de cada slido resultante (vide a Figura 4-26).
Operaes Booleanas entre Slidos
Algoritmos para determinar a unio, interseco ou
diferena de dois slidos podem ser utilizados por
modeladores de representao B-Rep de
representao hbrida
1
. Eles tambm podem ser
utilizados para converter slidos representados por
rvores CSG para uma equivalente representao B-
Rep.
1
Modeladores que suportam mais que uma representao.
(a)
(d) (c)
(b)
Pontos de interseco
Aresta-nula
Figura 4-26. Etapas da Seco por Plano.
Figura 4-27. Resultado final de uma
Seco por Plano.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
51
Conceitualmente, estes algoritmos no so difceis, mas sua implementao requer um substancial
trabalho por vrias razes. Considerar as vrias posies especiais de incidncia dos elementos
bsicos em trs dimenses pode ser muito trabalhoso. Ainda mais, a presena de superfcies curvas
introduzem problemas matemticos no triviais, e desde que a maioria dos algoritmos requer
tcnicas numricas, inevitvel que surjam problemas de preciso numrica e estabilidade de
clculos.
Um grande segmento da literatura requer que as superfcies dos objetos representados por
representaes B-Rep sejam fechadas e manifolds
2
orientados contidos no espao tridimensional.
Um exemplo de um slido no manifold est ilustrado na Figura 4-28 (a), resultado da unio de dois
braos L. O problema na aresta (PQ) que ela adjacente a quatro faces. imediato notar que a
aplicao de operadores booleanos sobre dois slidos manifold pode criar um resultado no
manifold. Trs propostas para tratar estruturas no manifold foram desenvolvidas:
2
Intuitivamente, ao redor de todos os pontos de uma superfcie manifold existe uma vizinhana que homeomrfica ao
plano, isto , pode-se deformar a superfcie manifold localmente em um plano e no ser possvel identificar pontos
vizinhos separados.
Q
P
Q2
P2
Q1
P1
Q2
P2
Q1
P1
(a) (c) (b)
Figura 4-28. Resultado na unio de dois braos L.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
52
Objetos necessitam ser manifold, logo operaes com resultados no manifold no so
permitidas e so consideradas como erro.
Objetos so manifold topolgicos, mas seu envolvimento no espao tridimensional permite
a coincidncia geomtrica de estruturas separadas topologicamente.
Objetos no manifold so permitidos tanto como entrada quanto como sada.
Na segunda proposta necessrio fornecer uma interpretao topolgica para as estruturas no
manifold. No exemplo da Figura 4-28, interpreta-se uma aresta no manifold como sendo duas
arestas separadas que coincidiram. As duas possibilidades existentes esto ilustradas na Figura 4-28.
Qual a interpretao mais natural? Por questes de robustez escolhe-se a interpretao na qual a
superfcie triangularizvel sem tringulos degenerados. Note que esta triangularizao s
possvel para o caso (b), e no para o caso (c).
A Figura 4-29 ilustra um exemplo dos quatro operadores booleanos que podem ser aplicados a dois
slidos. De forma similar ao algoritmo de seco por plano o algoritmo de operaes booleanas
pode ser dividido em cinco etapas:
Determinao dos pontos de interseco: o algoritmo verifica se as arestas do slido A
interceptam as faces do slido B e vice-versa. Se isto ocorre insere-se um novo vrtice com
Interseco A / B
A
B
Diferena B-A
Diferena A-B
Unio A+B
Figura 4-29. Operaes booleanas.
(a)
(d) (c)
(b)
Arestas-nulas Pontos de interseco
Figura 4-30. Etapas de uma Operao Booleana de unio
entre slidos.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
53
as coordenadas do ponto de interseco. Os vrtices de interseco so armazenados em
uma lista (vide Figura 4-30 (a)).
Classificao dos vrtices de interseco: eles so classificados de acordo com a operao
booleana que estiver sendo realizada.
Insero de arestas nulas: nos vrtices de interseco so inseridas arestas sem
comprimento geomtrico mas com significado topolgico. (vide Figura 4-30 (b)).
Juno e eliminao das arestas nulas: as extremidades das arestas so unidas a fim de
formar as novas faces do slido resultante (vide Figura 4-30 (c, d)).
Atualizao das estruturas de dados.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
54
5. CURVAS E SUPERFCIES
Os dois mtodos mais comuns para representar curvas e superfcies em modelagem geomtrica so
equaes implcitas e funes paramtricas. A equao implcita de uma curva sobre o plano xy
possui a forma 0 ) , ( = y x f . Esta equao descreve uma relao implcita entre as coordenadas x e
y dos pontos que esto sobre a curva. Para uma dada curva, a equao nica com exceo de uma
constante multiplicativa. Um exemplo a circunferncia de raio unitrio com centro na origem, que
especificada pela equao abaixo:
0 1 ) , (
2 2
= + = y x y x f ( 1 )
Na forma paramtrica, cada uma das coordenadas de um ponto sobre a curva representada
separadamente por uma funo. conveniente representar uma curva bidimensional paramtrica
como:
)) ( ), ( ( ) ( u Y u X u Q =
( 2 )
Onde ) (u X e ) (u Y so funes de parmetro u . ) (u X e ) (u Y
fornecem, respectivamente, o valor das coordenadas x e y de
um ponto sobre a curva em questo para qualquer valor de u .
Como exemplo de funo paramtrica, considere o primeiro
quadrante da circunferncia exibida na Figura 5-1, ele pode ser
representado pelas funes paramtricas expressas abaixo:
2
0
) ( ) (
) cos( ) (


)
`

=
=
u
u sin u Y
u u X
( 3 )
Reparametrizando as funes acima com ) 5 , 0 tan( = u t ,
possvel obter as representaes alternativas abaixo (observe que
a representao paramtrica no nica):
1 0
1
2
) (
1
1
) (
2
2
2

=
+

=
t
t
t
t Y
t
t
t X
( 4 )
x
y
Raio=1
Figura 5-1. Circunferncia com
raio unitrio, com centro
posicionado na origem.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
55
6.1 CURVAS PARAMTRICAS
Apesar de polinmios serem eficientes computacionalmente, no possvel definir uma curva
satisfatoriamente utilizando polinmios simples para ) (u X e ) (u Y . Ao invs disto, conveniente
partir a curva em um nmero de segmentos, sendo cada segmento definido por polinmios distintos,
que juntos comporo uma curva polinomial (piecewise polynomial). A curva definida segundo um
parmetro u que varia entre um valor mnimo inicial
min
u e algum valor mximo final
max
u e
existem certos valores especiais de u , chamados de knots (vide Figura 5-2). Os knots correspondem
s juntas (joints) entre os segmentos polinomiais. A seqncia de valores dos knots devem ser no
decrescentes:
ult l j
u u u u u u = = ... ... ...
max min 0
( 5 )
Note que alguns dos knots podem estar esquerda ou direita da faixa de valores do parmetro que
define a curva. A seqncia dos valores dos knots
ult l j
u u u u ,..., ,..., ,...,
0
( 6 )
chamada de seqncia de knots ou de vetor de knots. As funes paramtricas ) (u X e ) (u Y so
compostas por segmentos, sendo que cada segmento possui um conjunto de polinmios associados.
O j -simo polinmio cobre o intervalo de u que se inicia em
j
u at o prximo knot distinto
direita. Usualmente, ) (u X e ) (u Y necessitam satisfazer algumas restries de continuidade nas
juntas entre segmentos polinomiais sucessivos. Se a 0 -sima derivada at a d -sima derivada so
contnuas em todos os pontos, ento ) (u X e ) (u Y possuem continuidade
d
C . Algumas vezes,
assumiremos que os knots so todos distintos e equidistantes:
+ =
+ i i
u u
1
( 7 )
min
u
max
u
) (u Q
Figura 5-2. Uma curva definida parametricamente.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
56
A seqncia de knots definida desta maneira uma seqncia de knots uniforme. Por convenincia,
uma escolha freqente ser i u
i
= , onde 1 = . Freqentemente, ser mais simples expressar ) (u X
e ) (u Y segundo o intervalo entre
i
u e
1 + i
u como funes com parametrizao local dada por:
i i
i
u u
u u
u

=
+1
( 8 )
ao invs de ser expressado por uma funo de u . A reparametrizao realizada por uma
substituio, e a reparametrizao local ser sempre indicada nas frmulas em que ela for utilizada
pela omisso da barra acima do u . A presena da barra indicar que estamos nos referindo a uma
parametrizao simples de toda a curva. A ausncia da barra indicar que estamos parametrizando o
segmento da curva a partir de seu extremo esquerdo. Ento:
2
) ( u u Y
i
= ( 9 )
e
2
1
) (
(

=
+ i i
i
i
u u
u u
u Y ( 10 )
2
P
3
P
4
P
5
P
6
P
1
P
0
P
Figura 5-3. Uma curva definida pela interpolao de uma seqncia de pontos.
0
V
1
V
2
V
3
V
4
V
5
V
6
V
Figura 5-4. Exemplo de curva representada por uma aproximao de uma seqncia de pontos.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
57
so equivalentes, sendo cada uma a reparametrizao da outra segundo o intervalo entre
i
u e
1 + i
u .
Existem vrias maneiras de definir uma curva especfica. Cada uma destas maneiras pode ser
classificada em interpolao ou aproximao. Em ambos os casos, necessrio definir uma
seqncia de pontos, que ns representaremos nas ilustraes por ou + . No caso de uma
interpolao, a curva ser restringida a passar por todos os pontos,
i
P , numa seqncia ordenada
conforme ilustrado na Figura 5-3. Para as tcnicas baseadas em aproximao a curva restringida a
apenas passar perto dos pontos,
i
V , na ordem ilustrada na Figura 5-4. O significado de perto
depender da tcnica de aproximao particularmente utilizada.
6.2 INVARNCIA DA FORMA EM RELAO TRANSFORMAO DE COORDENADAS
A forma de um objeto independente do sistema de coordenadas pelo qual ele descrito. Isto
parece ser muito natural, mas uma condio importante na formulao de um modelo matemtico
para a forma. Como exemplo, considere o problema de selecionar alguns pontos a partir de um
modelo de argila, medindo as suas coordenadas e aproximando-as pela representao matemtica de
uma curva. Geralmente, isto feito fazendo com que os pontos medidos definam uma curva por
meio de uma interpolao. A curva final precisa ser a mesma, no importando o sistema de
coordenadas pelo qual os pontos foram medidos. Esta propriedade chamada de Invarincia da
Forma em Relao a Transformaes. A seguir verificaremos quais so as condies para que
esta condio seja satisfeita. Considere a curva representada abaixo:
| |
| | | |
T
n n
T
Q Q Q u u u
u Z u Y u X u Q
... ) ( ... ) ( ) (
) ( ) ( ) ( ) (
1 0 1 0
=
=

( 11 )
onde ) (
0
u , ) (
1
u , , ) (u
n
so funes polinomiais linearmente independentes em u ;
0
Q ,
1
Q ,
,
n
Q so os pontos que determinam a curva. Vamos considerar separadamente a matriz de
rotao tridimensional T (uma matriz 3 3x ) e a translao | |
z y x
m m m m = . Para que a forma
seja invariante, necessrio que a curva expressa em termos de

0
Q ,

1
Q , ,

n
Q em um sistema de
coordenadas que foi transformado a partir da curva original expressa em termos de
0
Q ,
1
Q , ,
n
Q .
Para a matriz de rotao T , temos:
| | | |
| | | |
| | | |
T u P
T Q Q Q u u u
T Q T Q T Q u u u
Q Q Q u u u u P
T
n n
T
n n
T
n n
=
=
=
=

) (
... ) ( ... ) ( ) (
... ) ( ... ) ( ) (
... ) ( ... ) ( ) ( ) (
1 0 1 0
1 0 1 0
1 0 1 0



( 12 )
Ento para as rotaes, a condio de invarincia automaticamente satisfeita. Vamos considerar a
translao:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
58
| | | |
| | | |
| | | |


=
=

+ =
+ =
+ + + =
=
n
i
i
n
i
i
T
n n
T
n n
T
n n
u m u P
m u Q Q Q u u u
m Q m Q m Q u u u
Q Q Q u u u u P
0
0
1 0 1 0
1 0 1 0
1 0 1 0
) ( ) (
) ( ... ) ( ... ) ( ) (
... ) ( ... ) ( ) (
... ) ( ... ) ( ) ( ) (




( 13 )
A partir da equao ( 13 ), para que a forma seja invariante em relao translao necessrio
que:

=
=
n
i
i
u
0
1 ) (
( 14 )
A equao ( 14 ) tambm conhecida como relao de Cauchy.
6.3 HERMITE E INTERPOLAO SPLINE CBICA
Suponha que possumos 1 + m pontos
m
P P , ,
0
" atravs dos quais ns desejamos traar uma curva
como ilustrado na Figura 5-3 (no qual 6 = m ). Cada um par sucessivo de pontos conectado por
um segmento de curva distinto. O i -simo segmento est entre
i
P e
1 + i
P , e o parmetro u cobre a
faixa que se inicia no knot
i
u e vai at o knot
1 + i
u . Isto corresponde seqncia de knots e faixa de
parmetros definida por
min 0
u u u
j
= = e
ult m l
u u u u = = =
max
. Como ) (u X e ) (u Y so tratados da
mesma maneira, discutiremos apenas ) (u Y ; entretanto, para obtermos curvas em trs dimenses,
definiremos a funo ) (u Z que far com que a funo ) (u Q
i
seja dada por ( ) ) ( ), ( ), ( u Z u Y u X
i i i
.
Por facilidade computacional, limitaremo-nos ao uso de polinmios cbicos na definio de ) (u X
i
,
) (u Y
i
e ) (u Z
i
. A grande vantagem que polinmios cbicos usualmente fornecem flexibilidade
suficiente para vrias aplicaes a um custo razovel. Para a curva da Figura 5-3, ento, ) (u Y
) (u Y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
u
6 = u 0 = u
Figura 5-5 . ) (u Y para a curva exibida na Figura 5-3. Neste exemplo foi escolhida uma seqncia de knots
uniforme dada por (0,1,2,3,4,5,6).
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
59
ilustrado na Figura 5-5. Ser mais fcil continuar nossa discusso por uma reparametrizao de cada
segmento ) (u Y
i
pela substituio de u por u . Isto significa que
1
=
i
u u para a seqncia de knots
fornecida na Figura 5-3. Cada ) (u Y
i
um polinmio cbico com parmetro u .
3 2
) ( u d u c u b a u Y
i i i i i
+ + + = ( 15 )
Sabemos que:
i i i i i i
i i i
d c b a y Y
a y Y
+ + + = =
= =
+1
) 1 (
) 0 (
( 16 )
Como ns possumos quatro coeficientes a determinar, necessitamos de mais duas outras restries.
Uma maneira de realizar isto, definir as primeiras derivadas
i
D de ) (u Y a cada knot
i
u , de modo
que:
i i i i i
i i i
d c b D Y
b D Y
+ + = =
= =
+
3 2 ) 1 ( '
) 0 ( '
1
( 17 )
Estas quatro equaes podem ser solucionadas simbolicamente:
( )
( )
1 1
1 1
2
2 3
+ +
+ +
+ + =
=
=
=
i i i i i
i i i i i
i i
i i
D D y y d
D D y y c
D b
y a
( 18 )
i
D a derivada no extremo esquerdo do i -simo segmento (i.e., como ) 0 ( '
i
Y ) e no extremo direito
do 1 i -simo segmento (como ) 1 ( '
1 i
Y ). Assim, ) (u Y possui a primeira derivada contnua. Esta
tcnica chamada de interpolao de Hermite. Ela pode ser generalizada para polinmios de ordem
superior. Rearranjando a expresso ( 18 ) obtemos:
( ) ( )
( ) ( )
2 3
1
3 2
3 2
1
3 2
2
2 3 2 3 1 ) (
u u D u u u D
u u P u u P u Q
i i
i i
+ + +
+ + =
+
+
( 19 )
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
60
6.3.1 FORMULAO MATRICIAL PARA AS CURVAS DE HERMITE
A curva de Hermite pode ser escrita em uma forma matricial que dada pela expresso abaixo:
| |
(
(
(
(

(
(
(
(



=
+
+
1
1 2 3
0 0 0 1
0 1 0 0
1 2 3 3
1 1 2 2
1 ) (
i
i
i
i
D
D
P
P
u u u u Q
( 20 )
6.4 CALCULANDO SPLINES CBICAS NATURAIS
Uma das propriedades da interpolao spline implica que a curva possui continuidade
2
C . Observe
que uma interpolao spline cbica natural , na realidade, um caso de interpolao de Hermite;
podemos escolher vetores de primeira derivada de maneira tal que a segunda derivada tambm seja
contnua. Se for possvel determinar os
i
D s necessrios, j possumos uma maneira de definir os
termos
i
a ,
i
b ,
i
c e
i
d a partir de
i
D . Portanto, desejamos definir
i
D em cada junta de maneira tal
que:
) 0 ( ' ' ) 1 ( ' '
1 i i
Y Y =

( 21 )
ou
i i i
c d c = +

2 6 2
1 1
( 22 )
Substituindo em nossa soluo apresentada na equao ( 18 ) para
1 i
c ,
1 i
d e
i
c , obtemos:
( ) | | ( ) | |
( ) | |
1 1
1 1 1 1
2 3 2
2 6 2 3 2
+ +


= + + +
i i i i
i i i i i i i i
D D y y
D D y y D D y y
( 23 )
Simplificando, e movimentando as incgnitas para a esquerda obtemos:
( )
1 1 1 1
3 4
+ + +
= + +
i i i i i
y y D D D
( 24 )
Desde que existem 1 m junes internas, existem 1 m destas equaes. Requisitando que a
segunda derivada no incio de cada curva seja zero implica que:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
61
( ) | |
( )
0 1 1 0
1 0 0 1
0
3 2
0 2 3 2
0 2
y y D D
D D y y
c
= +
=
=
( 25 )
Requerendo que a segunda derivada no final da curva seja zero, resulta similarmente que:
( )
1 1
3 2

= +
m m m m
y y D D
( 26 )
No momento, possumos 1 + m incgnitas e 1 + m equaes. Representando-as na forma de matriz
obtemos:
( )
( )
( )
( )
( )
( )
(
(
(
(
(
(
(
(
(







=
(
(
(
(
(
(
(
(
(

(
(
(
(
(
(
(
(
(


1
2
2 4
1 3
0 2
0 1
1
3
2
1
0
3
3
3
3
3
3
2 1
1 4 1
1 4 1
1 4 1
1 4 1
1 2
m m
m m
m
m
y y
y y
y y
y y
y y
y y
D
D
D
D
D
D
# # %
( 27 )
Este sistema de equaes pode ser solucionado pela tcnica de eliminao de Gauss. Uma vez que
os
i
D s forem determinados, podemos utilizar a equao ( 18 ) para determinar os coeficientes dos
polinmios de interpolao.
6.5 ESPAAMENTO DOS NS
Movimentando-se os pontos, obviamente, a curva ser modificada. Entretanto, grandes mudanas
na forma da curva podem ser feitas em qualquer local, sem nenhum movimento dos pontos de
0
P
1
P
2
P
3
P
4
P
5
P
Figura 5-6. A linha slida uma curva de interpolao spline cbica com seqncia de knots uniforme. A
curva tracejada corresponde a uma curva com espaamento uniforme, exceto para o intervalo entre os pontos
2
P e
3
P , no qual o espaamento possui quatro unidades.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
62
interpolao, pela variao do espao dos knots. Na Figura 5-6, foi utilizada uma seqncia de knots
uniforme na definio da curva spline cbica interpolante. O vetor de knots da curva slida :
5 , 4 , 3 , 2 , 1 , 0
( 28 )
Enquanto que a curva pontilhada interpola os mesmos pontos, mas utilizando um vetor de knots
diferente:
8 , 7 , 6 , 2 , 1 , 0
( 29 )
Portanto, o espaamento entre knots pode ser utilizado para determinar a forma, a questo mais
difcil compreender como esta influncia pode ser controlada intuitivamente. O espaamento
uniforme dos knots uma escolha natural de definir uma seqncia de knots. A distncia Euclidiana
entre os pontos uma segunda escolha natural para definir o espaamento entre os knots (vide
Figura 5-7).
6.6 CURVAS FECHADAS
Em alguns casos til criar curvas fechadas. Neste caso, a equao
( )
1 1 1 1
3 4
+ +
= + +
i i i i i
y y D D D
( 30 )
deve ser aplicada para cada um dos m pontos. O sistema de equaes que resulta um pouco
diferente:
0
P
1
P
2
P
3
P
4
P
5
P
Figura 5-7. A linha slida uma curva de interpolao spline cbica com seqncia de knots uniforme. No
caso da curva tracejada, dois knots sucessivos esto espaados segundo a distncia Euclidiana entre os
pontos associados no espao tridimensional.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
63
( )
( )
( )
( )
( )
( )
(
(
(
(
(
(
(
(
(







=
(
(
(
(
(
(
(
(
(

(
(
(
(
(
(
(
(
(


1 0
2
2 4
1 3
0 2
1
1
3
2
1
0
3
3
:
3
3
3
3
:
4 1 1
1 4 1
...
1 4 1
1 4 1
1 4 1
1 1 4
m
m m
m
m
m
y y
y y
y y
y y
y y
y y
D
D
D
D
D
D
( 31 )
6.7 CURVAS DE BEZIER
6.7.1 ALGORITMO DE DE CASTELJAU
Historicamente, com este algoritmo que o trabalho de de Casteljau se iniciou em 1959. Entretanto,
os seus trabalhos s se tornaram disponveis em 1975, quando W. Boehm os descobriu. Vamos
fornecer um algoritmo para construir uma parbola, a generalizao direta deste algoritmo nos
levar para as curvas de Bzier. Sejam
0
V ,
1
V e
2
V trs pontos no espao, e consideremos u como
sendo o parmetro:
1
1
1
0
2
0
2 1
1
1
1 0
1
0
) ( ) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
V u u V u u V
V u V u u V
V u V u u V
+ =
+ =
+ =
( 32 )
Inserindo as duas primeiras equaes na terceira, obtemos:
2
2
1 0
2 2
0
) 1 ( 2 ) 1 ( ) ( V u V u u V u u V + + = ( 33 )
Esta uma expresso quadrtica em u (o ndice superior representa o grau) e ) (
2
0
u V traa uma
parbola quando u varia de a + . Esta construo consiste de interpolaes lineares
sucessivas. Vamos aplicar o mesmo mtodo para quatro pontos no espao:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
64
) ( ) ( ) 1 ( ) (
) ( ) ( ) 1 ( ) (
) ( ) ( ) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
2
1
2
0
3
0
1
2
1
1
2
1
1
1
1
0
2
0
3 2
1
2
2 1
1
1
1 0
1
0
u V u u V u u V
u V u u V u u V
u V u u V u u V
V u V u u V
V u V u u V
V u V u u V
+ =
+ =
+ =
+ =
+ =
+ =
( 34 )
Simplificando a construo acima possvel obter (vide Figura 5-8):
0
3
1
2
2
2
3
3 3
0
) 1 ( ) 1 ( 3 ) 1 ( 3 ) ( V u V u u V u u V u u V + + + = ( 35 )
A generalizao do algoritmo de de Casteljau supe que dados
0
V ,
1
V , ,
n
V possvel definir:

=
=
+ =

+

r n i
n r
u V u u V u u V
r
i
r
i
r
i
, , 0
, , 1
) ( ) ( ) 1 ( ) (
1
1
1
"
"
( 36 )
onde
i i
V u V = ) (
0
. Ento, ) (
0
u V
n
o ponto com parmetro u sobre a curva de Bzier. O algoritmo
geomtrico est exibido na Figura 5-8.
6.7.2 FORMA DE BERNSTEIN PARAA CURVA DE BZIER
As curvas de Bzier podem ser definidas por um algoritmo recursivo, e esta a maneira pela qual
de Casteljau as definiu pela primeira vez. Tambm necessrio, entretanto, possuir uma
representao explcita para elas, i.e., expressar a curva de Bzier em termos de uma frmula no
recursiva ao invs de em termos de um algoritmo. Isto facilitar consideravelmente o
0
V
1
V
2
V
3
V
1
0
V
1
1
V
1
2
V
2
0
V
2
1
V
3
0
V
Figura 5-8. Construo de uma curva de Bzier por interpolao linear repetitiva.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
65
desenvolvimento terico. Expressaremos as curvas de Bzier em termos dos polinmios de
Bernstein, definidos por;
i n i n
i
u u
i
n
u B


|
|
.
|

\
|
= ) 1 ( ) (
( 37 )
Uma propriedade importante dos polinmios de Bernstein que eles satisfazem a seguinte
condio:
) ( ) ( ) 1 ( ) (
1
1
1
u B u u B u u B
n
i
n
i
n
i

+ = ( 38 )
Com 1 ) (
0
0
u B e 0 ) ( u B
n
j
para { } n j , , 0 " . Uma outra importante propriedade que os
polinmios de Bernstein compem a unidade:

=
=
n
j
n
j
u B
0
1 ) (
( 39 )
A forma genrica de uma curva de Bzier utilizando-se dos polinmios de Bernstein dada por:

=
=
n
j
j
n
j
V u B u Q
0
) ( ) (
( 40 )
6.7.3 PRIMEIRA DERIVADA DE UMA CURVA DE BZIER
A derivada de um polinmio de Bernstein ) (u B
n
j
dada por:
( ) ) ( ) (
) 1 (
)! 1 ( !
)! 1 (
) 1 (
)! ( )! 1 (
)! 1 (
) 1 (
)! ( !
! ) (
) 1 (
)! 1 ( !
!
) 1 ( ) (
1 1
1
1 1
1 1
u B u B n
t t
i n i
n n
u u
i n i
n n
u u
i n i
n i n
u u
n i
n i
u u
i
n
dt
d
u B
du
d
n
i
n
i
i n i i n i
i n i i n i
i n i n
i

=






=






=

|
|
.
|

\
|
=
( 41 )
Assim, a derivada de uma curva de Bzier ) (u Q pode ser definida como:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
66
( )
( )

=
=
=
=
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1 1
1
0
1 1
1
) (
) ( ) (
) ( ) (
) ( ) ( ) (
n
j
n
j j j
n
j
n
j
j
n
j j
n
j
n
j
n
j
j
n
j j
n
j
n
j
j
n
j
n
j
u B V V n
V u B n V u B n
V u B n V u B n
V u B u B n u Q
du
d
( 42 )
Portanto, a derivada de uma curva de Bzier uma outra curva de Bzier, obtida pela diferenciao
do polgono de controle original. Fazendo com que ( )
0 1
) 0 ( 0 V V n Q
du
d
u = = e para
( )
1
) 1 ( 1

= =
n n
V V n Q
du
d
u . Portanto, a primeira derivada da curva de Bzier em 0 = u
depende apenas dos pontos
0
V e
1
V . Isto significa que a direo definida por estes dois pontos
determina a direo da primeira derivada de uma curva de Bzier. O mesmo pode ser extendido
para 1 = u .
6.7.4 FORMULAO MATRICIAL PARA A CURVA DE BZIER
A curva de Bzier cbica pode ser escrita em uma forma matricial pela expanso dos coeficientes
dos polinmios de Bernstein presentes na definio analtica, e escrevendo estes coeficientes em
uma forma matricial utilizando um polinmio em base de potncias:
| |
| |
(
(
(
(

(
(
(
(



=
(
(
(
(

=
+ + + =
=

=
3
2
1
0
2 3
3
2
1
0
3 2 2 3
3
3
2
2
1
2
0
3
3
0
3
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
1
) 1 ( 3 ) 1 ( 3 ) 1 (
) 1 ( 3 ) 1 ( 3 ) 1 (
) ( ) (
V
V
V
V
u u u
V
V
V
V
u u u u u u
V u V u u V u u V u
u B V u P
i
i i
( 43 )
6.7.5 CONVERSO ENTRE CURVAS DE BZIER E CURVAS DE HERMITE
possvel determinar uma frmula de converso entre curvas de Bzier de terceiro grau e curvas de
Hermite tambm de terceiro grau. Para isto devemos igualar as expresses ( 20 ) e ( 43 ):
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
67
(
(
(
(

(
(
(
(

(
(
(
(
(

=
(
(
(
(

(
(
(
(

(
(
(
(
(

+
+
1
1
2
3
3
2
1
0
2
3
0 0 0 1
0 1 0 0
1 2 3 3
1 1 2 2
1 0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
1
i
i
i
i
T T
D
D
P
P
u
u
u
V
V
V
V
u
u
u
( 44 )
Eliminando os vetores com os parmetros u possvel em seguida isolar os pontos
0
V ,
1
V ,
2
V e
3
V
em funo de
i
P ,
1 + i
P ,
i
D e
1 + i
D :
(
(
(
(

(
(
(
(

(
(
(
(



=
(
(
(
(

+
+

1
1
1
3
2
1
0
0 0 0 1
0 1 0 0
1 2 3 3
1 1 2 2
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
i
i
i
i
D
D
P
P
V
V
V
V
( 45 )
Assim, obtemos:
1 3
1 1 2
1
0
3
1
3
1
+
+ +
=
=
+ =
=
i
i i
i i
i
P V
D P V
D P V
P V
( 46 )
6.7.6 CONEXO ENTRE CURVAS DE BZIER
Dada a curva de Bzier
1 0 ) 1 ( ) (
0
1 , 1

|
|
.
|

\
|
=

u V u u
i
n
u Q
n
i
i
i i n
( 47 )
desejamos conectar uma segunda curva de Bzier
1 0 ) 1 ( ) (
0
2 , 2

|
|
.
|

\
|
=

u V u u
i
m
u Q
m
i
i
i i m
( 48 )
com continuidade
1
C . Primeiro, no ponto de conexo, utilizando a continuidade de posio,
possumos
1 , 2 , 0 n
V V = . A primeira derivada de uma curva de Bzier dada pela equao ( 42 );
portanto, igualando as derivadas nos pontos de conexo entre as duas curvas, obtemos:
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
68
( ) ( )
1 , 1 1 , 2 , 0 2 , 1
=
n n
V V n V V m
( 49 )
Em algumas aplicaes a continuidade
1
C no exigida. Entretanto, deseja-se que no ponto de
conexo os trs pontos
1 , 1 n
V ,
2 , 0 1 ,
V V
n
= e
2 , 1
V sejam colineares.
6.7.7 PARTIO DE UMA CURVA DE BZIER
Considere o problema de dividir uma curva de Bzier cbica ) (u Q no ponto
s
u u = em duas curvas
de Bzier ) (
1
u Q ( 1 0 u ) e ) (
2
u Q ( 1 0 u ).
| |
(
(
(
(

=
+ + + =
3
2
1
0
2 3
3
3
2
2
1
2
0
3
1
) 1 ( 3 ) 1 ( 3 ) 1 ( ) (
V
V
V
V
M u u u
V u V u u V u u V u u Q
B
( 50 )
Fazendo a transformao de parmetro
s
u
u
t = na equao acima, a parte da curva correspondente
faixa
s
u u 0 agora expressada por ) (
1
t Q com o parmetro t variando entre 1 0 t :
| |
| |
(
(
(
(


(
(
(
(
(

=
(
(
(
(

=
3
2
1
0
2
3
2 3
3
2
1
0
2 2 3 3
1
1 0 0 0
0 0 0
0 0 0
0 0 0
1
1 ) (
V
V
V
V
M
u
u
u
u u u
V
V
V
V
M t u t u t u t Q
B
s
s
s
B s s s
( 51 )
1 , 0
V
2 , 3
V
1 , 1
V
2 , 2
V
1 , 2
V
2 , 1
V
2 , 0 1 , 3
V V =
Figura 5-9. Conexo entre duas curvas de Bzier de terceiro grau.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
69
Como:
(
(
(
(

=
(
(
(
(
(

3 2 2 3
2 2
2
3
) 1 ( 3 ) 1 ( 3 ) 1 (
0 ) 1 ( 2 ) 1 (
0 0 1
0 0 0 1
1 0 0 0
0 0 0
0 0 0
0 0 0
s s s s s s
s s s s
s s
B B
s
s
s
u u u u u u
u u u u
u u
M M
u
u
u
( 52 )
Ento (modificando a primeira matriz de modo que o lado direito se torne
B
M ):
| | | |
T
s s s B
s s s s s s
s s s s
s s
B
T
s s s s s s
s s s s
s s
B
T
u V u V u V V M t t t
V u V u u V u u V u
V u V u u V u
V u V u
V
M
t
t
t
V
V
V
V
u u u u u u
u u u u
u u
M
t
t
t
t Q
) ( ) ( ) ( 1
) 1 ( 3 ) 1 ( 3 ) 1 (
) 1 ( 2 ) 1 (
) 1 (
1
) 1 ( 3 ) 1 ( 3 ) 1 (
0 ) 1 ( 2 ) 1 (
0 0 1
0 0 0 1
1
) (
3
0
2
0
1
0 0
2 3
3
3
2
2
1
2
0
3
2
2
1 0
2
1 0
0
2
3
3
2
1
0
3 2 2 3
2 2
2
3
1
=
(
(
(
(

+ + +
+ +
+

(
(
(
(
(

=
(
(
(
(

(
(
(
(


(
(
(
(
(

=
( 53 )
Assim, o processo de definir o polgono que expressa a parte da curva na faixa
s
u u 0 coincide
com os pontos
0
V , ) (
1
0 s
u V , ) (
2
0 s
u V e ) (
3
0 s
u V que foram encontrados no processo de interpolao
sucessiva de de Casteljau. O mesmo procedimento pode ser aplicado para a parte posterior da curva
de Bzier corresponde faixa 1 u u
s
.
0
V
1
V
2
V
3
V
1
0
V
1
1
V
1
2
V
2
0
V
2
1
V
) (
3
0 s
u Q V =
Figura 5-10. Partio de uma curva de Bzier de terceiro grau.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
70
6.8 TCNICA DE APROXIMAO SIMPLES B-SPLINE CBICA UNIFORME
Como o nome sugere, faremos uso de polinmios cbicos paramtricos segundo uma seqncia de
knots uniforme: mais especificamente, uma seqncia de knots composta de inteiros sucessivos.
Uma propriedade particular das curvas B-Spline o controle local, pelo que significa que alterando
a posio de um simples ponto causar a alterao de apenas parte da curva. Estes pontos so
chamados por vrtices de controle, e eles esto conectados por linhas retas para formar os vrtices e
arestas de um grafo de controle ou polgono de controle.
O controle local torna possvel modificar parte da curva sem afetar outras partes que so
satisfatrias, e isto muito til em Modelagem Geomtrica e Projeto Geomtrico. Um benefcio
adicional do controle local a minimizao do trabalho necessrio para recalcular a curva aps a
movimentao de um vrtice de controle desde que apenas uma parte dela foi alterada.
6.8.1 CONCEITOS BSICOS B-SPLINES LINEARES
A maneira pela qual o controle local obtido facilmente explicada considerando inicialmente uma
interpolao linear de vrtices de controle. Considere a curva ilustrada na Figura 5-11. Se ns
quisermos representar os segmentos desta curva, obteremos
( ) ( )
( ) ( )
( ) ( )
( ) ( )
2 3
2
2 1 2 2 2
1 2
1
1 1 1 1
1
1
1
1
1 2 1 1 1
1 ) ( ), ( ) (
1 ) ( ), ( ) (
1 ) ( ), ( ) (
1 ) ( ), ( ) (
+ +
+
+ + + + +
+ +
+
+ + + +
+

= + = =

= + = =

= + = =

= + = =
i i
i
i i i i i
i i
i
i i i i i
i i
i
i i i i i
i i
i
i i i i i
u u
u u
u V u V u u Y u X u Q
u u
u u
u V u V u u Y u X u Q
u u
u u
u V u V u u Y u X u Q
u u
u u
u V u V u u Y u X u Q
( 54 )
onde
2 i
V
1 i
V
i
V
1 + i
V
2 + i
V
Figura 5-11. Uma curva linear.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
71
2 1 2
2 1 2
1 1
1 1
1
1
1 2 1
1 2 1
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
) 1 ( ) (
+ + +
+ + +
+ +
+ +



+ =
+ =
+ =
+ =
+ =
+ =
+ =
+ =
i i i
i i i
i i i
i i i
i i i
i i i
i i i
i i i
y u y u u Y
x u x u u X
y u y u u Y
x u x u u X
y u y u u Y
x u x u u X
y u y u u Y
x u x u u X
( 55 )
Alterando
i
V , afetar apenas os dois segmentos ) (u Q
i
e ) (
1
u Q
i+
que so adjacentes a ele. Vamos
representar a curva linear de maneira a isolar a influncia individual de cada vrtice de controle.
Desta maneira ser possvel extrapolarmos a mesma propriedade para curvas polinomiais de ordem
mais elevada. Se plotarmos ) (u Y como funo de u , e representarmos a contribuio generalizada
de
i
y para ) (u Y
i
atravs da linha pontilhada, obtemos a Figura 5-12. Note que esta contribuio
zero tanto esquerda de
i
u quanto direita de
2 + i
u . Similarmente, a contribuio de
1 i
y ilustrada
pela Figura 5-13. As curvas pontilhadas exibidas na Figura 5-12 e 5-13 sero chamadas por funo
chapu.
i
y
1 i
y
2 i
y
1 + i
y
2 + i
y
) (u Y
i
y u
i
y u ) 1 (
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
Figura 5-12. Contribuio de
i
y para ) (u Y .
i
y
1 i
y
2 i
y
1 + i
y
2 + i
y
) (u Y
1

i
y u
1
) 1 (


i
y u
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
Figura 5-13. Contribuio de
1 i
y para ) (u Y .
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
72
Plotando estas duas funes chapu, obtemos uma representao grfica para
i i i
y u y u u Y + =
1
) 1 ( ) ( - vide Figura 5-14. (Por claridade, ns deixaremos de extender as
funes chapu para a direita e para a esquerda quando as desenharmos, pois estas extenses seriam
desenhadas uma em cima da outra).
conveniente pensar em
1 i
y e
i
y como sendo escalas, cada uma associada a uma funo chapu
unitria, cuja altura mxima um. Estas funes chapu so translaes uma da outra. Tambm
conveniente considerar
1 i
y e
i
y como sendo pesos associados s funes chapu unitrias.
Faremos uma distino entre escala e peso para enfatizar que
i
y pode possuir qualquer valor:
positivo, negativo ou zero. Desta maneira, eles agem como fatores de escala. As funes chapu, de
outra maneira, so projetadas a possurem apenas valores no negativos para qualquer valor de u e,
desta maneira, elas agem como pesos. medida que u aumenta a partir de
1 i
u , a contribuio de
1 i
y cresce a partir de zero em
1
=
i
u u , possui seu pico em
i
u u = , e termina em zero novamente
em
1 +
=
i
u u . A contribuio de
i
y similar, segundo o intervalo
2 +

i i
u u u . Ns vimos que
) (u Q determinado inteiramente por
1 i
V e
i
V no intervalo
1 +

i i
u u u . Neste intervalo ) (u Y a
mdia ponderada entre
1 i
y e
i
y , nominalmente:
i
y
1 i
y
2 i
y
1 + i
y
2 + i
y
) (u Y
i
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
Figura 5-14. Observando simultaneamente as contribuies de
1 i
y e
i
y para a curva em geral, e para
) (u Y
i
em particular.
i
y
1 i
y
2 i
y
1 + i
y
2 + i
y
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
Figura 5-15. Multiplicando as duas funes chapu unitrias exibidas aqui por
1 i
y e
i
y obtemos as funes
chapu escaladas exibidas na Figura 5-14.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
73
i i i
i i
i
i
i i
i
i
y u y u y
u u
u u
y
u u
u u
u Y + =
(

+
(

=

+

+
+
1
1
1
1
1
) 1 ( ) (
( 56 )
Se ns chamarmos a funo chapu unitria pontilhada por ) (
1
u B
i
e a funo chapu unitria
tracejada por ) (u B
i
- vide Figura 5-15 (para manter a compatibilidade com o material anterior, ns
nomearemos a funo chapu aps o knot de sua extremidade esquerda), ento o segmento de linha
associado a
1 i
y e a
i
y pode ser descrito como:
) ( ) ( ) (
1 1
u B y u B y u Y
i i i i i
+ =

( 57 )
para
1 +

i i
u u u , onde

=
+ +
+ +
+
+
+
2 1
1 2
2
1
1
) (
i i
i i
i
i i
i i
i
i
u u u
u u
u u
u u u
u u
u u
u B
( 58 )
possvel representar os outros segmentos de nossa curva linear de modo semelhante equao (
57 ). Na Figura 5-16 representamos todas as funes chapu ) ( , ), (
2 2
u B u B
i i +
" que definem a
nossa curva exemplo. Dependendo do ponto de vista desejado, podemos dizer que ) (u Q uma
combinao linear das funes ) (u B
i
, ou uma soma ponderada dos vrtices de controle
i
V . Para
qualquer i particular, ) (u Y
i
se reduz equao ( 57 ), desde que todas as funes, exceto ) (
1
u B
i
e
i
y
1 i
y
2 i
y
1 + i
y
2 + i
y
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
) (
2
u B
i
) (
1
u B
i
) (u B
i
) (
1
u B
i+
) (
2
u B
i+
Figura 5-16. Representando uma curva linear pela combinao de funes chapu.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
74
) (u B
i
, so zero no interior do intervalo definido por
i
u e
1 + i
u . Com um nmero suficiente de
funes chapu possvel representar qualquer curva linear. As funes chapu unitrias ) (u B
i
so
chamadas de funes base.Assim, qualquer vrtice
i
V particular contribui para a curva que estamos
definindo apenas onde ) (u B
i
no zero. Como ) (u B
i
no zero apenas nos dois intervalos
sucessivos | )
1
,
+ i i
u u e | )
2 1
,
+ + i i
u u , a posio de
i
V pode influenciar apenas os dois segmentos
correspondentes a ) (u Q
i
e ) (
1
u Q
i+
. O resultado o controle local.
A curva completa pode ser descrita como:
( )

= =
i
i i i i
i
i i
u B y u B x u B V u Q ) ( ), ( ) ( ) (
( 59 )
Note que ns fizemos uso de intervalos semi-abertos | )
1
,
+ i i
u u e | )
2 1
,
+ + i i
u u de maneira que ) (u Q
i
define uma curva para valores de u maiores que, mas no incluindo,
1 + i
u porque o primeiro
intervalo aberto direita. Ento, ) (
1
u Q
i+
considera
1 + i
u porque o segundo intervalo fechado
esquerda.
As funes chapu introduzidas so contnuas, apesar de suas derivadas possurem saltos nos knots
(i.e., ele possui continuidade
0
C ). Conseqentemente, quando utilizarmos as funes para ponderar
os vrtices de controle e som-los utilizando a equao ( 59 ) ns obtemos uma funo que
contnua, mas cuja primeira derivada pode ser descontnua nos knots.
6.8.2 B-SPLINE CBICA UNIFORME
O nosso objetivo real definir curvas como as da Figura 5-17 pela composio de segmentos que
so curvas ao invs de retas. Consideraremos novamente apenas segmentos de curva representados
por polinmios cbicos.
A tcnica que ns estamos desenvolvendo, em geral, no interpola os vrtices de controle que
uma propriedade dos segmentos de curva lineares. Ao invs disto, cada seqncia de pontos de
0
V
1
V
2
V
3
V
4
V
5
V
6
V
) (
3
u Q
) (
4
u Q
) (
5
u Q
) (
6
u Q
Figura 5-17. A curva exibida construda a partir de segmentos cbicos para aproximar os vrtices
suavemente.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
75
controle define uma curva que passa prximo dos vrtices. Concentraremos nossas atenes para as
coordenadas ) (u Y , vide Figura 5-18:
Utilizaremos curvas representadas por polinmios cbicos ) (u X
i
e ) (u Y
i
que possuem
continuidade de posio, de primeira derivada e de segunda derivada (continuidade
2
C ) nas juntas
de maneira que as seguintes equaes sejam satisfeitas:
) ( ' ' ) ( ' '
) ( ' ) ( '
) ( ) (
1
1
1
i i i i
i i i i
i i i i
u Q u Q
u Q u Q
u Q u Q
=
=
=

( 60 )
Em particular, isto implica que:
) ( ' ' ) ( ' '
) ( ' ) ( '
) ( ) (
1
1
1
i i i i
i i i i
i i i i
u Y u Y
u Y u Y
u Y u Y
=
=
=

( 61 )
E, similarmente, o mesmo ocorre para ) (u X . possvel obter a continuidade desejada se as
funes bsicas pelos quais definiremos ) (u X e ) (u Y tambm forem polinmios cbicos
contnuos
2
C . As funes bsicas que utilizaremos so suaves, isto significa que elas devero ser
no nulas em um intervalo mais amplo, entretanto elas sero desenvolvidas de modo anlogo que o
apresentado para as B-splines lineares. Por exemplo, ) (u Y para a curva da Figura 5-19 pode ser
representada como uma soma de funes bsicas cbicas contnuas
2
C escaladas.
A Figura 5-19 ilustra vrias convenes. Decidimos indexar os vrtices de controle de zero a m (no
caso da figura temos 6 = m ). Como veremos, isto requer quatro funes base para definir
propriamente cada segmento de curva. Cada funo base no nula em quatro intervalos
paramtricos. A funo base associada ao extremo esquerdo possui trs intervalos adicionais
) (u Y
u
Figura 5-18. ) (u Y , componente y da curva exibida na Figura 5-17.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
76
esquerda da curva e a funo base associada ao extremo direito possui trs intervalos adicionais
direita da curva. Resumindo, existem 1 + m vrtices de controle, 1 + m funes base, 2 m
segmentos de curva limitados por 1 m knots e 5 3 3 1 + = + + m m knots no total. A curva
criada medida que u percorre o espao de
3
u a
1 + m
u . Isto representado pela expresso abaixo:
4 3 2 1 max
max 1 4 3 min
min 3 2 1 0
...
+ + + +
+
< < < =
= < < < =
= < < <
m m m m
m
u u u u u
u u u u u
u u u u u
( 62 )
Vamos observar que possvel definir trs destas funes base. Similarmente aos resultados
apresentados pelas B-splines lineares, cada funo base seja no nula em quatro intervalos
consecutivos (o qual, assumiremos que possui comprimento unitrio) como ilustrado na Figura 5-
20. Internamente a cada intervalo, a funo base pode ser definida por uma polinomial cbica:
i j i u d u c u b a
j j j j
+ + + 3
3 2
( 63 )
0
y
) (
3 3
u B y
3
y
4
y
6
y
) (u Y
3 = u 7 = u
3 = u 7 = u
) (
3
u B ) (
0
u B ) (
1
u B ) (
2
u B ) (
4
u B ) (
5
u B ) (
6
u B
Figura 5-19. A curva da Figura 5-17 como uma soma escalada de funes base.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
77
Desde que a parte no nula da funo base cbica ) (u B consiste (da esquerda para a direita) de
quatro segmentos base ) (
0
u b

, ) (
1
u b

, ) (
2
u b

e ) (
3
u b

e como cada segmento possui quatro


coeficientes, existem 16 coeficientes a serem determinados. Assumiremos que ) (u B
i
zero para
i
u u e para
4 +

i
u u , de maneira tal que a primeira e a segunda derivadas ) ( ' u B e ) ( ' ' u B
i
so
tambm nulas fora do intervalo ) , (
4 + i i
u u . As restries de concordncia de posio, de primeira
derivada e de segunda derivada em cada knot, implica que:
0 ) 1 ( ' ' 0 ) 1 ( ' 0 ) 1 (
) 0 ( ' ' ) 1 ( ' ' ) 0 ( ' ) 1 ( ' ) 0 ( ) 1 (
) 0 ( ' ' ) 1 ( ' ' ) 0 ( ' ) 1 ( ' ) 0 ( ) 1 (
) 0 ( ' ' ) 1 ( ' ' ) 0 ( ' ) 1 ( ' ) 0 ( ) 1 (
) 0 ( ' ' 0 ) 0 ( ' 0 ) 0 ( 0
3 3 3
3 2 3 2 3 2
2 1 2 1 2 1
1 0 1 0 1 0
0 0 0
= = =
= = =
= = =
= = =
= = =





b b b
b b b b b b
b b b b b b
b b b b b b
b b b
( 64 )
onde, por simplicidade cada segmento, parametrizado individualmente de maneira que 0 = u
corresponde ao ponto extremo esquerda e 1 = u corresponde ao ponto extremo direita, Isto
constitui 15 requisitos. Segundo a propriedade da invarincia da forma em relao transformao
de coordenadas, conveniente que:
1 ) 0 ( ) 0 ( ) 0 ( ) 0 (
3 2 1 0
= + + +

b b b b
( 65 )
Como 0 ) 0 (
0
=

b , isto simplifica para:


1 ) 0 ( ) 0 ( ) 0 (
3 2 1
= + +

b b b
( 66 )
i
u
1 + i
u
2 + i
u
3 + i
u
4 + i
u
u
) (
0
u b

) (
1
u b

) (
2
u b

) (
3
u b

Figura 5-20. A B-spline cbica uniforme ) (u B


i
uma funo base
2
C centrada em
2 + i
u . Ela zero para
i
u u e para
4 +

i
u u . A parte no nula de ) (u B
i
composta de quatro segmentos polinomiais ) (
0
u b

,
) (
1
u b

, ) (
2
u b

e ) (
3
u b

.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
78
Agora possumos 16 equaes e 16 incgnitas, que podem ser solucionadas para os coeficientes de
i
a ,
i
b ,
i
c e
i
d dos quatro segmentos ) (
0
u b

, ) (
1
u b

, ) (
2
u b

e ) (
3
u b

. Desta maneira:
| |
| |
| |
3 2
3
3 2
2
3 2
1
3
0
3 3 1
6
1
) (
3 6 4
6
1
) (
3 3 3 1
6
1
) (
6
1
) (
u u u u b
u u u b
u u u u b
u u b
+ =
+ =
+ + =
=

( 67 )
Estes quatro segmentos definem uma B-Spline cbica uniforme; novamente, o termo uniforme
significa que os knots so igualmente espaados. O B uma abreviao de Base. O controle local
est presente nas funes determinadas, a Figura 5-21 exibe as funes que so no nulas no knot
j
u . fcil verificar que estes segmentos possuem a continuidade necessria para qualific-los
como splines
2
C . Consideremos, por exemplo, a junta entre ) (
2
u b

e ) (
3
u b

:
6
1
) 0 ( ) 1 (
3 2
= =

b b
( 68 )
Considere a primeira derivada paramtrica em suas juntas comuns. Ns temos:
( )
( )
2
3
2
2
3 6 3
6
1
) ( '
9 12
6
1
) ( '
u u u b
u u u b
+ =
+ =

( 69 )
e
3 i
u
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
3 i
B
2 i
B
1 i
B
Figura 5-21. As funes base que so no nulas em
i
u so indicadas por labels.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
79
2
1
) 0 ( ' ) 1 ( '
3 2
= =

b b
( 70 )
A segunda derivada paramtrica dada por:
u u b
u u b
=
+ =

1 ) ( ' '
3 2 ) ( ' '
3
2
( 71 )
De modo que,
1 ) 0 ( ' ' ) 1 ( ' '
3 2
= =

b b
( 72 )
Note que tambm temos:
0 ) 1 ( ' ' ) 1 ( ' ) 1 (
3 3 3
= = =

b b b
( 73 )
Como as funes base (e conseqentemente todas as suas derivadas) so identicamente nulas
direita de ) 1 (
3
b , possumos continuidade posicional, de primeira derivada e de segunda derivada
no extremo direito de ) (
3
u b

. Para determinar a curva, selecionaremos um conjunto de vrtices de


controle
i
V e os utilizaremos para definir a curva:
( )

= =
i
i i i i
i
i i
u B y u B x u B V u Q ) ( ), ( ) ( ) (
( 74 )
No qual, cada ) (u B
i
uma simples cpia de ) (u B , deslocada de modo que possa suportar o
intervalo entre
i
u e
4 + i
u . Observe que pelo fato das funes base serem no nulas em apenas quatro
intervalos sucessivos (vide Figura 5-21), se
1 +

i i
u u u , ento:
) ( ) ( ) ( ) (
) ( ) (
1 1 2 2 3 3
0
3
u B V u B V u B V u B V
u B V u Q
i i i i i i i i
r
r
r i r i i
+ + + =
=

=
=
+ +
( 75 )
Se substituirmos cada funo base ) (u B
i
pelo polinmio associado ao segmento que pertence ao
intervalo | )
1
,
+ i i
u u , ento a equao pode ser re-escrita como:
) ( ) ( ) ( ) (
) ( ) (
0 1 1 2 2 3 3
0
3
u b V u b V u b V u b V
u b V u Q
i i i i
r
r
r r i i

=
=
+
+ + + =
=

( 76 )
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
80
6.9 A PROPRIEDADE CONVEX-HULL
O convex hull de um conjunto de pontos de controle em um plano pode ser entendido como a regio
que est interna a um polgono que contm todos os vrtices de controle. Formalmente, o convex
hull definido por um conjunto de pontos de controle
i
V , consiste de todos os pontos que podem ser
descritos como uma combinao convexa destes pontos de controle, isto , os pontos de controle
que podem ser expressos na forma:
i
i
i
V w Q =

( 77 )
Para qualquer conjunto de 0
i
w onde

=
i
i
w 1. Note que um segmento de linha unindo
quaisquer dois pontos em um convex hull tambm est interno ao convex hull. Isto , se

=
i
i i
V w Q
1 , 1
( 78 )
e

=
i
i i
V w Q
2 , 2
( 79 )
e se 1 0 , ento
2 1
) 1 ( Q Q Q + = ( 80 )
tambm da forma
3 i
u
2 i
u
1 i
u
i
u
1 + i
u
2 + i
u
3 + i
u
3 i
B
2 i
B
1 i
B
4 + i
u
i
B
Figura 5-21. As quatro B-splines cbicas que so no zero no i -simo intervalo | )
1
,
+ i i
u u .
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
81
i
i
i
V w Q =

( 81 )
Isto pode ser demonstrado por:
| |


=
+ =
+ =
+ =
i
i i
i
i i i i
i i
i i i i
V w
V w V w
V w V w
Q Q Q
2 , 1 ,
2 , 1 ,
2 1
) 1 (
) 1 (
) 1 (



( 82 )
As quantidades
i
w , no ltimo somatrio so dadas por:
2 , 1 ,
) 1 (
i i i
w w w + =
( 83 )
evidente que estas quantidades so no negativas, e eles somam a unidade, pois:
| |
1 1 1 ) 1 ( 1
) 1 ( ) 1 (
2 , 1 , 2 , 1 ,
= + = + =
+ = +



i i i
i i i i
w w w w
( 84 )
6.10 CURVAS DE BZIER RACIONAIS
Nesta sesso apresentaremos o conceito de curvas racionais utilizando-se de coordenadas
homogneas. Apesar de polinmios oferecerem muitas vantagens, existem vrias curvas e
superfcies importantes que no podem ser representadas precisamente por polinmios:
circunferncias, elipses, hiprboles, cilindros, cones, esferas, etc. Como exemplo, vamos fornecer
uma prova de que o crculo unitrio no plano xy , com centro na origem, no pode ser representado
utilizando funes de coordenadas polinomiais. A prova ser pelo absurdo, vamos assumir que:
Figura 5-22. Convex hull de conjunto de pontos de controle.
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
82
n
n
n
n
u b u b b u Y
u a u a a u X
+ + + =
+ + + =
... ) (
... ) (
1 0
1 0
( 85 )
Ento, se 0 1
2 2
= + y x implica que:
n
n n
n
n n n n
n
n n n n n n
n
n
n
n
u b a u b b a a
u b b b a a a
u b b b a a a u b b a a b a
u b u b b u a u a a
2 2 2 1 2
1 1
2 2
2
2
1 2
2
1
2
2 0
2
1 2 0
2
1 1 0 1 0
2
0
2
0
2
1 0
2
1 0
) ( ) ( 2
) 2 2 ( 2 ...
) 2 2 ( ) ( 2 ) 1 (
1 ) ... ( ) ... ( 0
+ + + +
+ + + + +
+ + + + + + + =
+ + + + + + + =


( 86 )
Esta equao deve valer todo u , o que implica que todos os coeficientes so nulos. Comeando
com o grau de maior ordem e abaixando o grau, mostraremos em n passos que 0 =
i
a e 0 =
i
b
para u i 1 :
1. 0
2 2
= +
n n
b a implica que 0 = =
n n
b a ;
2. 0 2 2
2
2
1 2
2
1
= + + +
n n n n n n
b b b a a a , utilizando o resultado do passo 1, implica
que 0
2
1
2
1
= +
n n
b a , que por sua vez, implica em 0
1 1
= =
n n
b a ;
n. 0 2 2
2 0
2
1 2 0
2
1
= + + + b b b a a a , utilizando o resultado do passo 1 n , implica
que 0
2
1
2
1
= + b a , que por sua vez, implica em 0
1 1
= = b a .
Ento,
0
) ( a u X = e
0
) ( b u Y = o que uma contradio bvia. conhecido da matemtica clssica
que todas curvas cnicas, incluindo a circunferncia, podem ser representadas utilizando funes
racionais, que so definidas pela razo entre dois polinmios. De fato, elas so representadas como
funes racionais na forma:
) (
) (
) (
) (
) (
) (
u W
u Y
u y
u W
u X
u x = =
( 87 )
Onde, ) (u X , ) (u Y e ) (u W so polinmios, isto , cada uma das funes de coordenadas possui o
mesmo denominador. As curvas racionais com funes de coordenadas na forma da equao ( 87 )
(um denominador comum) possui uma interpretao geomtrica elegante o que produz um
processamento eficiente e armazenamento de dados compacto. A idia utilizar coordenadas
homogneas para representar a curva racional em uma espao n -dimensional como uma curva
polinomial no espao 1 + n -dimensional. Por exemplo, considere o ponto do espao Euclidiano
) , , ( z y x P = . Ento P ser escrito como ) , , , ( ) , , , ( W Z Y X w z w y w x w P
w
= = no espao
quadridimensional, 0 w . Agora P obtido a partir de
w
P dividindo todas as coordenadas pela
quarta coordenada, W , i.e., pelo mapeamento de
w
P at a origem passando pelo hiperplano 1 = W .
Este mapeamento, denotado por H , um mapeamento perspectivo com centro na origem. Agora,
ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO
Avenida Professor Mello Moraes, n2231 CEP05508-900 So Paulo SP
Departamento Engenharia Mecatrnica e de Sistemas Mecnicos
PMR2520 Introduo ao CAD/CAM Prof. Dr. Marcos Tsuzuki Pg.
83
para um dado conjunto de pontos de controle, { }
i
P , e pesos, { }
i
w , define-se os pontos de controle
com os pesos associados, ) , , , (
i i i i i i i
w
i
w z w y w x w P = . Ento possvel definir a curva de Bzier
no racional no espao quadridimensional

=
=
n
i
w
i n i
w
P u B u C
0
,
) ( ) (
( 88 )
que nos permitir definir a curva racional como sendo:

=
=


= =
n
i
i n i
n
i
i i n i
w u B
P w u B
u z u y u x u C
0
,
0
,
) (
) (
)) ( ), ( ), ( ( ) (
( 89 )
A Figura 5-23 exibe um arco de circunferncia sendo representado por uma curva de Bzier
racional.
x
w
y
w
P
2
w
P P
0 0
=
2
P
w
P P
1 1
=
Figura 5-23. Representao homognea para um arco de circunferncia.

Você também pode gostar