Download "DESENVOLVIMENTO DE UM SISTEMA G ~ ~ F I C O PARA
Transcript
"DESENVOLVIMENTO DE UM SISTEMA G ~ ~ F I CPARA O TERMINAIS" ~ e l e n êda Silva Cavalcanti TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE pósGRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO C0 MO PARTE DOS REQUESITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS (M.Sc.). Aprovada por : Presidente RIO DE JANEIRO ESTADO DO RIO DE JANEIRO-BRASIL MAIO DE 1976 / A Geraldo Magela AGRADECIMENTOS A todos que, direta ou indiretamente, contribuiram pa- ra que esse trabalho fosse levado a efeito,e muito em particular: A COPPE, pela bolsa de estudos. A François Gallais-Hammonno, pela orientação na fase inicial deste trabalho. A Nelson Maculan Filho, pela orientação na fase final deste trabalho e pelo apoio. A Luiz Ferrara de Almeida Cunha e ~ o ã o~ o s éNeto, pelo incentivo. A Zuleica da Silva Cavalcanti, pela revisão do texto. A Regina Coeli Jacob, pelo trabalho de datilografia. A meus amigos, pela atenção. A meus familiares, por tudo. iii O propósito deste trabalho 6 a p r e s e n t a r um s i s t e m a f i c o p r o j e t a d o p a r a o computador MITRA-15 do LASS/COPPE e detalhar grg um p a c o t e g r á f i c o que o p e r a s o b r e f i g u r a s t r i d i m e n s i o n a i s . A ê n f a s e é dada 5 d e s c r i ~ ã odo método d e ação u t i l i z a d o p a r a a manipulação d e coordenadas de que se compõe um o b j e t o no espaço - e e s c o l h a d e pontos e l i n h a s v i s í v e i s s o b r e o mesmo, segundo um o b s e r v a d o r colocado no i n f i n i t o . I?d e s c r i t o um procedimento capaz d e t r a n s f o r m a r coorde - nadas e p o s s i b i l i t a r a v i s ã o da mesma sob novo ponto d e v i s t a , com exem pios colocados no a p ê n d i c e 2 . Uma i d é i a s o b r e a implementação dos a l g o r i t m o s usados é i l u s t r a d a no apêndice 1, a t r a v é s da l i s t a g e m dos mesmos, ASSEMBLER do IBM-1130. em linguagem ABSTRACT The purpose o£ this work is to show a graphic system designed for the mini-computer MITRA-15 o£ LASS/COPPE and to describe in detail a graphic package that deals with three-dimensional pictures. The special approach is for the manipulation of the coordinates in space and the choice of visible points and lines for an object, relative to an observer fixed at an infinite point of view. A procedure is described which can change the values of coordenates to allow a new view of an object, as illustrated in appendix 2. An example of the implementation of the algorithms used is shown in appendix 1, consisting of ASSEMBLER language listings for the IBM 1130 computer. CAP~TULOI: Introdução 1.1 - Os sistemas gráficos 1.1.1 - Apreciação 1.1.2 1.2 1.3 - - Alternativas Os processos gráficos de saída Objetivos do presente trabalho considerações gerais 2.2 2.3 2.4 2.5 2.6 CAP~TULO111: Alcance A criação de um sistema gráfico unções gráficas O problema das linhas escondidas ~onclusões Um sistema gráfico 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 - - organização e terminologia ~~resentação do programa de aplicação CONV Utilização Filosofia de tratamento Tempo e memória A organização do programa O sistema de projeção Os nós de informação 3.8.1 - O formato do nó de informação 3.9 - Ps subfiguras 3.10- OS níveis de visibilidade 3.11- Modularidade CAPITULO IV: A estrutura de dados 4.1 - ~ntrodução 4.2 - Estruturas de dados manipulados por CONV 4.3 - Procedimentos de entrada 4.3.1 - Filosofia de tratamento 4.3.2 - O procedimento de montagem e preenchimento da estrutura 4.3.2.1 - Descrição das variáveis CAPITULO V: Procedimentos gerais 5.1 - Introdução 5.2 - Os pontos extremos 5.2.1 - A busca dos pontos extremos 5.2.1.1 - Descrição das variáveis 5.2.1.2 - Procedimento 2 5.3 - Os pontos que pertencem ao contorno-pontos do nível 5.3.1 - ~ntrodução 5.3.2 - Filosofia de tratamento 5.3.2.1 - ~ é t o d ode ação 5.3.2.1.1 - Casos particulares 5.3.3 - A busca dos pontos do l? nível 5.3.3.1 - ~escriçãodas variáveis 5.3.3.2 - Procedimento 3 5.4 - O critério da visibilidade 5.5 - Os pontos ligados aos do contorno-pontos do 20 nível 5.5.1 - Introdução 5-5.2 - Filosofia de tratamento 5.5.3 - O caso dos pontos em linha reta 5.5.4 - A busca dos pontos do 20 nível 5.5.4.1 - Descrição das variáveis 5.5.4.2 - Procedimento 4 CAPITULO VI: Procedimentos de saida e rotinas de transformação 6.1 - As linhas visiveis-pontos do 30 nivel 6.2 - A busca dos pontos do 30 nivel 6.2.1 - Procedimento 5 6.3 - A interpretação dos códigos de I 6.4 - A exibição da figura 6.4.1 - Procedimento 6 6.5 - Rotinas de transformação APÊNDICE 1 Listagens dos algoritmos usados Procedimento 1 Procedimento 2 Procedimento 3 Procedimento 4 Procedimento 5 Procedimento 6 Exemplos de figuras trabalhadas por CONV e desenhadas pelo PLOTTER 85 BIBLIOGRATIA 87 1.1 - OS SISTEMAS GF&FIC,OS De um modo geral, toda vez que a facilidade display % gráfico é incorporada a um computador, sistemas grâficos novos são escritos para suportá-lo. O projeto e implementação deste software 6 uma atividade que absorve tempo e energia em larga escala. Apesar do dis- pêndio de recursos humanos, o resultado é, na maioria das vezes, insatisfatório. 0s usuários costumam encontrar dificuldades de programação e de falta de generalidade nos sistemas gráficos,que por sua vez são responsáveis por uma sobrecarga do computador, em termos de memória e tempo envolvido na computação do grande número de testes que estes pre cisam executar. O contínuo surgimento de novos sistemas gráficos traz a seus usuários grandes inconveniências e têm dado aos sistemas gráficos iterativos uma reputação má 191 . Isso não seria problema se o in- verso acontecesse: cada sistema de software dando suporte a uma variedade de configurações de hardware. Nos Últimos tempos tem sido notado algum progresso nesse sentido: poucos sistemas têm sido desenvolvidos, com o objetivo de suportar uma variedade de terminais. são os chamados "sistemas gráficos independentes do dispositivo", muito populares en- tre projetistas de programas de aplicação, apesar de não serem conside rados Ótimos. Sistemas gráficos necessitam ser mais do que indepen- dentes do dispositivo. Eles precisam ser sistemas de propósito \ geral cujo objetivo deve ser o de suportar uma larga variedade de aplicações. Os sistemas gráficos dificilmente satisfazem a essa condição porque seus projetistas os dirigem para aplicaçoes específicas visando sua otimizaçso. E muito comum acontecer, que uma aplicação inesperada para um certo sistema resulte em grande numero de modificações e até reformulação dos mesmos. Isso não aconteceria se os projetistas se preocupassem em fazer um conjunto geral de funções para seus sistemas. Outra idéia é fazer sistemas gráficos'de alto nível[4] os quais pudessem prover meios simples e poderosos de se escrever apli cações gráficas, evitando ao usuário o conhecimento de facilidades de baixo nível de hardware. Seria ideal poder-se fazer programas de aplicação gráfica tão fáceis de se escrever e manter como qualquer outro tipo de programa iterativo, destruindo o mito da dificuldade em torno da programação gráfica. 1.1.2 - ALTERNATIVAS: Alguns sistemas são construidos em forma de ."pacotes gráficos", isto é, como um conjunto de funções ou subrotinas a serem chamadas por programas de aplicação escritos em uma linguagem de pro gramaqão padrão. Outra alternativa e projetar-se uma linguagem - espe- cial de programação, o que pode ser feito tomando-se por base uma outra já existente, extendendo-a e modificando-a onde for necessário a fim de permitir-se o desenvolvimento de certas tarefas gráficas. ~á as pectos positivos e práticos para a construção pacotes gráficos ao invés de uma linguagem especial: - Uma boa e particular razãosque '6virtualmente impos- szvel a escolha de uma linguagem que satisfaça a todas os programado - res . - Um p a c o t e g r á f i c o pode ser p r o j e t a d o p a r a usar vá- rias linguagens d i f e r e n t e s . s ã o r a z õ e s como e s t a s que f a c i l i t a m uma e v e n t u a l escol h a e n t r e ambas as opções. L. 2 - OS PROCESSOS GRÁFICOS DE S A ~ D A 4 Uma d a s maiores r e s p o n s a b i l i d a d e s d e um p r o j e t i s t a e p r o d u z i r um s i s t e m a q u e o u s u á r i o possa e n t e n d e r . F a z e r a n a l o g i a com o p l o t t e r é um modo d e simplificar o p r o c e s s o g r á f i c o d e s a í d a . Ao u s u á r i o é informado que manipula uma e s p é c i e d e pena que pode abandonar o t r a ç a d o d e l i n h a s à medida q u e f i g u r a se movimenta na t e l a e desenhar outras,em o b e d i ê n c i a a a funções e s c o l h i d a s previamente p o r ele. Sob o ponto d e v i s t a do p r o j e t i s t a , a s c o i s a s t ã o s i m p l e s . Supondo-se que a s r o t i n a s d e s a í d a passassem tos não s ã o dados g r ã f i d i r e t a m e n t e p a r a a t e l a do d i s p l a y , e n c o n t r a - s e o s e g u i n t e p r o b l e - m a : se e s t a s r o t i n a s forem executadas uma Única vez, a f i g u r a p o r elas d e f i n i d a s u r g i r i a n a t e l a e d e s a p a r e c e r i a e m s e g u i d a . I?o problema regeneração da imagem, dependente do hardware u t i l i z a d o e da da frequên tia com que s ã o e x e c u t a d a s as r o t i n a s d e s a í d a . Desse modo, a s r o t i n a s d e s a í d a desempenham a função de a l g o r i t m o d e v i s u a l i z a ç ã o , enviando 5 t e l a a s p e c t o s c o n t í n u o s do que se e n c o n t r a armazenado nas estruturas d e dados manipuladas p e l o s i s t e m a . Nos p r o c e s s o s i t e r a t i v o s ou s e j a , quando a e n t r a d a dados f o r n e c e r e s p o s t a s i m e d i a t a s , sempre que a e s t r u t u r a d e dados de 6 modificada a imagem deve ser mudada também. E s t e c o n c e i t o é extremamen te simples e igualmente difícil quanto à irnplementa~ãs.O problema reside no fato de que as rotinas escritas para programas de aplicação devem ser suficientemente rápidas para garantir a regeneração da imagem na tela, evPtando que ela enfraqueça ou desapareça. Se as rotinas forem bem simples e a estrutura de dados pequena, esse problema pode ser evitado, bem como através do uso de sistemas multi-programados. 1.3 - OBJETIVOS DO PRESENTE TRABALHO Neste trabalho descrito o programa CONV,o qual faz parte do projeto de um sistema gráfico projetado para uma unidade exibidora controlada pelo minicomputador MITRA-15. O propósito de CONV o de manipular os dados tridimensionais que compõem um objeto é convexo no espaço, permitindo ao usuário uma visão do mesmo sob ângulos dife- rentes,mediante rotação em relação a um dos eixos coordenados. O objetivo deste trabalho é o de mostrar as fases de implementação de CONV e descrevê-las em detalhe, diversas abordando seus problemas especfficos, Isto se deve ao fato de as rotinas de mani pulação de raios cotõdicos, concernentes ao sistema gráfico:citado, se rem desenvolvidas em paralelo a este trabalho. Pelo mesmo motivo, CONV foi implementado no IBM-1130, utilizando o PLOTTER como unidade de safda. O apêndice 1 apresenta as listagens de CONV em linguagem ASSEMBLER do IBM-1130 sob a forma de programa principal, sem ser quebrado em rotinas. Essa medida visa a facilitam sua compreensão bem como a transcodificação posterior para linguagem ASSEMBLER do MITRA-15. A utilização do sistema será efetuada por meio de chamadas inseridas no programa do usuário, escrito em linguagem FORTRAN. Como equipamento básico, o usuãrio conta com uma configuração de hardware: C.P.U. Leitora/perfuradora de f i t a de papel Console Unidade exibidora (osciloscÓpio) mínima 0s gráficos emitidos por computador começaram a ser es tudados no início dos anos 60, através do SKETCHPAD de 1.E.Sutherland [l]. Apesar de os elementos constituintes do hardware de computadores e de displays terem se tornado acessíveis antes da referida época, foi I Sutherland quem mostrou que o homem poderia interagir com computadores através de métodos mais diretos do que bits, números ou de cartões per furados. Certamente ele não estava sozinho; os melhores componentes do grupo de pesquisadores dos laboratórios da General Motors buscavam mei os para que seus projetistas usassem os computadores com maior eficiên tia. O resultado foi o DAC-I (Design Augmented by Computers), o foi exposto um par de anos mais tarde durante a "Fall Joint Conference" C21 qual Computer . Ambos os trabalhos pioneiros acima descritos utiliza- ram máquinas grandes e um hardware construido especialmente para dis- play. Mais tarde, um grupo encabeçado por Prince e Chasen,.,.naLockheed Georgia Company, elaborou um sistema gráfico para computador em um com putador menor. Seu projeto inicial se destinava a permitir que o usuário gerasse instruções em uma maquina de controle numérico. Por volta de 1965 muita gente já se mostrava interes- sada pelos problemas envolvendo gráficos em computador. Os esforços e investimentos em hardware e, especialmente, em software começaram então a tomar vulto, apesar de produzirem poucos resultados praticas. Isto se devia a numerosas razaes como: custo de equipamento (eram altos porque muito poucas unidades eram produzidas), desenvolvimento demorado de sistemas de software (mais lento do que se esperava), programas de aplicação demorados devido a lentidão no desempenho dos próprios sistemas de software,e também porque era subestimado o esforço necessá rio para se produzir os programas de aplicação. Contudo, adicionar aos computadores a capacidade de manipulação de gráficos se constituia em um enorme aumento do potencial de aplicação dos mesmos. Descobriu-se ' então que muito da atividade atualmente desempenhada inteiramente pelo homem, é realizada por uma s&ie ações intuitivas e auto-corrigiveis em pequenos espaços de tempo. Mais tarde, com a baixa de custo do hardware, novas e baratas unidades (algumas de capacidade limitada) começaram a aparecer no mercado. Os sistemas de computadores de propósito geral não eram mais aversos 5s necessidades de unidades gráficas e seus usuários. Hoje em dia existe um renovado e amadurecido interesse em gráficos. Um sinal desta crescente maturidade 6 o grande número livros e artigos informativos que vêm sendo publicados,tendo em o estudo de gráficos emitidos de vista por computador em todo o mundo. As aplicações vão desde simples gráficos a desenhos de circuitos eletrônicos. ~écnicaspara introduzir dados tri-dimensionais através meios bi-dimensionais continuam a ser aper£eiqoadas, tendo em de vista a criatividade e o bom senso na combinação de hardware com rotinas. 2.2 - ALCANCE Um problema importante que envolve os gráficos emitidos por computador 6 o da divisão do trabalho. Isso quer dizer: que porcen - tagem do trabalho na computação de um gráfico deve ser levada a efeito por um computador (ao qual o display' está acoplado) e qual a que de- ve ser controlada pelo próprio display , tratado como um terminal in- teligente? Em outras palavras: quão próximo o poder da máquina pode es tar do usuário e seu terminal o qual, por outro lado poderia estar lon ge do computador? E o usuário? Alguns os classificam como matemáticos, outros como artistas. Contudo, aplicações gráficas, softwareehardware, custo são examinadas e pesquisadas no mundo inteiro bem como seu alto em termos de hardware e da complexidade necessitada pelo software. ~plicaçõesem engenharia mecânica tem sido muito bem sucedidas, bem co mo em engenharia elétrica. Os horizontes se abrem,já que a necessidade de gráficos emitidospor computador continua a existir. Segundo muitos, seu sucesso só depende do aprimoramento dos projetos de skstemas de computação e, especialmente, de linguagens de programação. pode O processo de construção de um sistema gráfico ser descrito, resumidamente,da seguinte maneira: C91 1 - Escolha da linguagem, sobre a qual se baseará 2 - , o sistema. Projeto do conjunto de funções ou extensões da lig yuagem para E/S gráfica. 3 - Redação do manual do programador. 4 - Redação do software necessário ao desempenho funções grãficas das . O desenvolvimento dos dois primeiros itens resulta projeto do que poderia ser chamado de linguagem gráfica C51 . no impor- tante fazer a distinção desta e de outras conotações do termo "linguagem gráfica", que pode ser associado a linguagem em linha para desenho e manipulação de figuras C61 , comando de um programa gráfico C71 ou um sistema gráfico iterativo para definir programas C81. O tipo de lingua gem gráfica necessária a um sistema gráfico de propósito geral 6 a lin guagem de alto nível convencional orientada para rotinas, convenientemente incrementada com funç6es grâficas. 2.4 - FUNÇÕES GRAFICAS: O projeto de funções gráficas ou extensões de gem é de importância vital na determinação do sucesso ou do linguafracasso de um sistema. Pode-se visualisar estas extensões como sendo um meio de oferecer ao usugrio o controle de funções internas de hardware e software. Este controle deve ser simples e poderoso e nunca englobar ' um conjunto muito numeroso de funqÕes,o que normalmente acarreta a dificuldade de interpretação e destin~ãoentre funções, maior possibilidade de erros de operação,além de obrigar o usuário a dispender maior tempo na leitura do manual de utilização das funções. Um número pegueno de poderosas funções gráficas é a maneira ideal de reduzir o perigo da redundzncia e da possibilidade de combinações errôneas de funções, além de eliminar os rodap& de advertências nos manuais, marca regis trada de sistemas gráficos mal projetados [9]. A idéia é a de ao mínimo as possibilidades de erros de lógica por parte do sem lhe fazer restrições e não a de reduzir simplesmente o reduzir usuário número de funções. Se estas não podem atender as necessidades do usuário, mesmo se verá obrigado a escrever novas funções a fim de remediar problema. - ele s 2.5 - O PROBLEMA DAS LINHAS ESCONDIDAS O termo"grgfico emitido por computador", através a do uso, tem se tornado conveniente para definir a área de técnicas e apli cações de computador na qual o dado fornecido pelo usuário 6 apresenta do ou aceito por este sob a forma de linhas desenhadas ou diagramas. Em se tratando de objetos tri-dimensionais, é interessante a determina ção de partes visíveis e não visíveis em relação a um observador colocado em um determinado ponto. O problema se baseia no fato de luz não pode atravessar um objeto opaco O (que a . Assim sendo, se estabe- lece imediatamente que as linhas que se situam atrás de um objeto opa- co são invisíveis aos olhos do observador e classificadas,portanto, co mo linhas escondidas. Para o computador não existe uma maneiravopaca" de deter a luz. É se necessário pois, uma caracterização matemática da invi- sibilidade de algumas linhas componentes do objeto,as quais apesar de não serem vistas sob certos ângulos,podem sê-10 de outro. A determinação da visibilidade ou não de uma linha se constitui na solução para o problema. Tomando por base o progresso nos dias de hoje, torna-se um tanto óbvio o entusiasmo pelo processamento de imagens. As aplicações em engenharia mecânica vêm demonstrando razoável sucesso por se basearem, em grande parte,em modelos matemáticos simples e pequeno número de interações. Por outro lado, a necesâidade de simples, potentes e pequenos sistemas gráficos visando auxilko 5 programaqão de máquinas de controle num&rico,permanece até os dias de hoje. As aplicações em engenharia elétrica visando a impres, são de desenhos de circuitos estão cada vez mais difundidas. Continuam em desenvolvimento em todo o mundo;experiências em arquitetura e planejamento urbano. Observa-se, contudo, que tão longe quanto se possa che gar, a situa~ãodo software geral para gráficos não 6 ainda muito clara. O software para gráficos iterativos não tem sido bem servido com o uso do FORTRAN e poucas são as pessoas que se aventuram fora desta li; guagem de programação C91 . O futuro do processamento gráfico é muito promissor. Tomando-se por base que os gráficos contribuem para maior e melhor per cepção e compreensão do ambiente pelo homem em um mundo técnico, pode-se afirmar que o futuro desse tipo de processamento é dos mais promis sores. Sua necessidade é certamente incontestável. ~ambémo 6 o avanço tecnológico em termos de hardware, o que contribui para tornar cada vez mais baratos os sistemas gráficos. Com o advento dos processadores microprogramados com memórias de controle cada vez maiores, os mecanis mos para a manipulação de melhores sistemas começam a se tornar cada vez mais disponfveis. Dispiays a cores serão parte do futuro de muitos tipos de aplicação. Sistemas cada vez melhores e menores serão indicados para aplicações especiais e especificas. O futuro do processamento de imagens está ligado dire- então ser ofereci - tamente aos futuros desenvolvimentos de toda a ciência dos computado res L31 . Os gráficos emitidospelo computador poderão dos como benefício e ferramenta de trabalho,como o são as de programação e sistemas. linguagens CAP~TULO3 UM SISTEMA + definição GMFICO da terminologia e a organização de um s i s - - tema g r á f i c o são dois tópicos bastante discutidos. De um modo s i m p l i f i cada, propõem-se um diagrama de organização, mostrado na f i g u r a 1. Seu o b j e t i v o é o de f o c a l i z a r somente os processos e dados e s s e n c i a i s - a operação de um programa de aplicação g r a f i c a . Para e f e i t o de um melhor entendimento e visando uma def i n i ç ã o de terminologia, segue-se uma breve descrição de cada elemento da f i g u r a 1. 1 - Unidades de entrada: são usadas pelo operador do programa de aplicação a fim de fornecer dados e comandos de controle. 2 - Manipulador de entradas: e o processador dos pedidos de interrupção que partem das unidades de entrada, provendo assim meios para que o programa de aplicação receba os dados a serem manipulados. 3 - Estrutura de dados: Contém os dados em forma adequada para manipulação pe- l o programa de aplicação. 4 - Procedimentos de entrada: Recebem os dados do manipulador de entradas.,fazem mu- UNIDADE DE ENTRADA MANIPULADOR I Tos DE ENTRADA I TOS GERAIS TRANSFORMAÇ~ES I I TOS I DE SAPDA I I LINHAS TESTES I O GERADOR IMAGENS DIAGRAMA SIMPLIFICADO DO PROCESSO GR&ICO Figura 1 DE E/S danças apropriadas na estrutura de dados e passam o controle a outras rotinas. são as partes do programa de aplicação que não envol- vem diretamente E/S. são rotinas de apoio. Definem a figura a ser exibida, geralmente em termos de dados armazenados na estrutura de dados do programa, isto é, defi- nem como esses dados podem ser exibidos. 7 - Rotinas de '~ransformação: são capazes de mudar escalas, fazer rotação e transla- yão da informação grâfica gerada pelas rotinas de saída. O resultado é uma figura de tamanho e posição arbitr5rios. Desse grupo podem também fazer parte rotinas que selecionam partes específicas da figura a ser exibida, como se formassem uma espécie de janela. 8 - Procedimentos de concatenação: Controlam as transformações sempre que necessário, ve- rificando suas hierarquias. 9 - Gerador de imagens: Converte informações em sinais convenientes à unidade de-saída em questão. O conjunto formado pelos itens 4,5 e 6 é o programa de aplicaçao 191 . Contudo, a importância das rotinas de transformação de- ve ser ressaltada. É muito bom para o usuário poder efetuar as trans - formações que deseja,livremente, para obter diferentes visões de uma figura, em diferentes escalas. Por esta e outras razões 6 interessante extender o domhio das rotinas de transformação a fim de que manipulem figuras tridimensionais. Isto acrescenta um pouco de complexidade ao sistema mas sua utilidade 6 de comprovada significação. 3.2 - APRESENTAÇÃO DO PROGRAMA DE APLICAÇÃO CONV e evidente que programas de computador não podem de- senhar e sim seguir uma série de procedimentos que o usuário pensou po derem resolver uma determinada classe de problemas. Tomando por base o b próprio procedimento humano nesse sentido, podemos acrescentar de seus elementos de experiência, perspic&ia alguns e criatividade à habili- dade natural do computador de desempenhar procedimentos de rotina e re petidas operações de comparação sem a possibilidade de erro. E deduzivel que pequena fração do esforço envolvido no processo de desenho requer criatividade, enquanto a maior parte do trabalho se concentra em atenção a milhares de detalhes como c~lculos,restauração de informa- C çoes, captura de dados, etc. O programa CONV se baseia em processos bastante intui- tivos e simples na manipulação das coordenadas de que se compõe um objeto tridimensional. Inicialmente é pesquisado o contorno da ' proje- ção do mesmo sobre um plano frontal X'Y'. Em seguida,e a partir de pon tos pertencentes ao contorno,é resolvido o problema da visibilidade ou não das linhas de que se compõe a figura projetada. A característica "não iterativo" se deve 2 indisponibi lidade de suporte de hardware que permita a instalação de dispositivos tais como "light pen", console para display, etc. Em nível de hardware s e r ã o gerados apenas o s elementos p r i m i t i v o s : pontos, segmentos d e ret a e c a r a c t e r e s alfanum&icos. a nível A manipulação d e s s e s elementos d e s o f t w a r e é que o c a s i o n a a formação d a s f i g u r a s . Para s u a e x i b i ç ã o , o s o b j e t o s contam com o mini-compu- t a d o r MITRA-15 e um o s c i l o s c Õ p i o a e l e conectado. Suas coordenadas dep o r t a n t o ser i n t e i r a s e p e r t e n c e r a o i n t e r v a l o (0,512) vem ou s e j a , q u a l q u e r número X a ser a l i m e n t a d o no s i s t e m a deve obedecer a s e g u i n t e convenção: O < X <512 e X E N . A u t i l i z a ç ã o d e CONV é muito s i m p l e s e o b t i d a através de chamada f e i t a p e l o u s u á r i o em programa FORTRAN da s e g u i n t e maneira: CALL CONV END ( E N D , GRAUS) 6 o endereço s i m b 6 l i c o do i n i c i o da c a d e i a d e coor - denadas do u s u á r i o . GRAUS e s p e c i f i c a o ângulo p a r a a r o t a ç ã o do o b j e t o . S e GRAUS f o r i g u a l a z e r o s i g n i f i c a que o u s u á r i o não d e s e j a a obter r o t a ç ã o do mesmo. Uma vez acionado, o programa permanece em - sèu laço p r i n c i p a l a fim d e p o s s i b i l i t a r a e x i b i ç ã o c o n t í n u a d e um o b j e t o por tempo indeterminado. A obtenção d e nova p o s i ç ã o r n e s t a v e r s ã o d e CONV, é conseguida 3.4 - de abandono do programa e nova chamáda- FILOSOFIA DE TRATAMENTO O s dados o f e r e c i d o s como e n t r a d a p e l o u s u á r i o s ã o exa- minados e armazenados e m e s t r u t u r a c o n v e n i e n t e 5 suamanipulação r s p i d a . RE I N I C I A L I Z. DOS NOS DE PESQ. SOBRE A VISIBILI- DADE DE NOS r-l PESQ. SOBRE A VISIBIL. NOVAS COOR- DAS LINHAS DIAGRAMA SIMPLIFICADO DE COMV Figura 2 Esses dados são inicialmente analisados com o objetivo de se definir o contorno do objeto a ser exibido. Este processo se baseia no estudo da projeqão do objeto sobre o plano X"Jk',segundo um observador posicionado no infinito. A determinação das linhas escondidas é feita, portanto, "de fora para dentro" da projeção. O resultado é a projeção do objeto sobre o mesmo plano com a eliminação das linhas escondidas mediante ou não rotação feita em relação a um eixo coordenado no espaço. A figura 2 dá uma idéia geral dos procedimentos princi - pais do programa. 3.5 - TEMPO E MEMQRIA O problema do algoritmo 6 a deteção e eliminação das linhas escondidas. Esse trabalho de pesquisa envolve muita computação, o que corresponde a dispêndio de tempo. E de inteira responsabilidade do usuário o gasto de memória, quanto ao fornecimento de dados para o programa. Sua preocupação deve ser sempre a de minimizar o_número de linhas a serem traçadas sobre o objeto que ele quer desenhar. Quanto ' maior for o número de dados, maior será o tempo gasto em pesquisa-10s e maior também a área de memória necessária à sua carga e armazenamen- to em estrutura conveniente. 3.6 - A ORGANIZAÇÃO DO PROGRAFIA O programa CONV 6 organizado em fases para sua melhor compreensão. As fases são independentes entre si, tendo como Ünico pon to em comum o acesso aos nós de informação de que se compõe a cadeia de entrada fornecida pelo usuário. Cada fase tem tarefas específicas de pesquisa e armazenamento de informações para a seguinte. ' Um modo conveniente de se descrever um sólido em fun ção de seus vértices com o objetivo de formar arestas e faces. Esses ' vértices, por convenção, são percorridos no sentido horário pelo algoritmo, aresta por aresta, segundo sua projeção em um plano conveniente. A projeção de um ponto sobre um plano 6 definida como o pé da perpendicular que vai do ponto ao plano. Esta? perpendicular é Unica, visto que por um ponto dado passa uma e somente uma perpendicular a um plano especifico. Por conseguinte, se temos um segmento de r% ta AB e um plano E quaisquer, a projeção de ÃB sobre E é o conjunto de todos os pontos que são projeções dos pontos de que se compÕe~,sobre E. De um modo mais geral podemos afirmar que a projeção de um polIgono convexo 6 convexa, e num nível mais elevado, que a de L'- um sólido convexo 6 igualmente convexe. Esta é a idéia sobre a qual programa aL, CONV se baseia. A manipulação dos segmentos de reta é. feita sobre os dois sistemas coordenados: 1 - Sistema O (x,y,z) Sistema tridimensional de eixos, sobre o qual os obje- tos devem ser definidos. 2- Sistema O' ( x ' , y 8 ) Sistema bidimensional representakivo do plano de proje qão paralelo ao plano x=O, que intercepta o semi-eixo positivo dos X . (figura 3) . 0s objetos definidos a três dimensões são transforma - dos em objetos bidimensionais a fim de poderem ser exibidos. A impres- são de profundidade 6 dada pela visão em perspectiva do objeto (P). Considerando-se P' a projeção de P sobre X'Y I, a qualquer ponto Pi (xi,yidi)r PiEh será associado um outro Pi (xi#y;) , Pi E P ' . Assim sendo: yi=x; zi=y; As coordenadas xi não fazem parte da projeção do objeto P sobre o plano X'Y' mas são muito importantes na determinação das a. linhas escondidas. através delas que se obtêm informação sobre quais os pontos que mais se aproximam ou afastam do observador. OS SISTEMAS DE PROJEÇÃO Figura 3 Os nós de informação são armazenados em uma fila, acordo com os dados introduzidos pelo usuário. Esta fila de de nós deve ser o mais compacta possível para que se evite gasto de memória e tempo. Ao usuário cabe a responsabilidade de arranjar os dados de modo a evitar o mais possível a repetição de linhas no traçado de seu objeto. Sob-oponto de vista do usuãrio, a cadeia de coordenadas que define: seu sólido forma uma matriq 4 x N palavras. N é o nÚme ro de vértices Vi do mesmo. OBS : Tendo em vista o caráter provisório da implementação ao algoritmo (levando em conta que seu projeto 6 para o MITRA-15 e não paraoIBM f 130) deixamos de dimensionar as matrizes, que poderão eventualmen - te assumir valores definitivos em sua forma final. importa ASPECTOS DA FILA DE E/S Figura 4 A f i g u r a 4 mostra a m a t r i z A d e e n t r a d a e a m a t r i z A' d e s a í d a . A p r i m e i r a mostra o s nós f o n t e e a segunda, o s nós t r a n s f o r mados. A e x i b i ç ã o do s ó l i d o 6 f e i t a mediante s u a p r o j e ç ã o so- b r e o plano ;X'Y' (fifjura3J Desse modo e, p a r a esse o b j e t i v o , as coordenad a s X do s ó l i d o s ã o i g n o r a d a s p e l o a l g o r i t m o convenientemente. 3.8.1 - O FORMATO DO ~6 DE INFORMAÇÃO Cada nÕ d e in&ormação corresponde a dados s o b r e um Úni co ponto componente do o b j e t o a ser e x i b i d o . E s t e s dados se r e f e r e m 2s coordenadas c a r t e s i a n a s do ponto no espaço. A s s i m sendo, p a r a um ponto g e n é r i c o P i d o espaço, teremos um n6 d e 4 p a l a v r a s onde a s informações s ã o d i s t r i b u í d a s d a s e g u i n t e forma: Figura 5 Onde : 12 - X1,Y1 e z1 s ã o as coordenadas e s p a c i a i s d e Pi. il é Uma p a l a v r a d e t r a b a l h o a s e r u t i l i z a d a s p o r t o d a s a s f a s e s do programa. Seu conteúdo f i n a l i n d i c a se o ponto c o r r e s p o n d e n t e a este nÕ 6 v i s í v e l ou não. A c o n f i g u r a ç ã o d e s e u s b i t s é o s e g u i n t e : - bit de ' v i w i b i l i d a d e d bits de trabalho C---- bit de visilidadeA PALAVRA DE TRABALHO I Figura 6 Observe-se que a condição "verdadeiro" estar5 associada ao valor 1 (bit ligado) e a condição "falso" ao valor 0 (bit desligado) 3.9 - . AS SUBFIGURAS: Uma subfigura será interpretada como um conjunto linhas que formam ou não um pollgono qualquer sobre uma face de do obje- to, sem contudo ser confundida com suas arestas. Esse poligono pode ser côncavo ou convexo. A restrição de ser convexo é feita somente objeto 3.10 - ao . N ~ V E I SDE VISIBILIDADE: Os nfveis de visibilidade dos pontos componentes uma figura projetada sobre X ' Y ' obedecem a uma hierarquia de relacionada unicamente 5 disposição de suas coordenadas sobre o mesmo e foram in- troduzidas para f a c i l i d a d e de implementação do algoritmo. - O s pontos c l a s s i f i c a d o s comocbl? n í v e l são aqueles que pertecem ao contorno da f i g u r a , i s t o é, pertecem aosmegmentos de r e t a que l i m i t a m a ~ r o j e ç ã odo o b j e t o sobre X'Y'. - - O s pontos do 29 n í v e l são aqueles imediatamente l i g a dos aos docontorno da f i g u r a e que não pertencem a e l e . - O s pontos do 39 nxvel são o s pontos r e s t a n t e s de que s e compõe a f i g u r a , A u t i l i z a ç ã o dessas informações 6 levada a e f e i t o l o s procedimentos de s a í d a na definigão f i n a l d a f i g u r a a ser pe- exibidét bem como pelos procedimentos g e r a i s que as usam para otirnizar seus pro - cessas de pesquisa. G 3.11 - MODULARIDADE : Cada f a s e do programa CONV é um subprograma dente dos demais, A u t i l i z a ç ã o ou mudanga t o t a l de qualquer indepen- um deles não provoca nunhum transtorno na f i l o s o f i a do algoritmo, v i s t o que cada f a s e s e preocupa somente em t r a b a l h a r dados para a seguinte. Esses dados são b i t s a serem ligados ou não na palavra de t r a b a l h o cada nó. de A ESTRUTURA DE DADOS Os programas de computador usualmente operam problemas baseados em tabelas,.deinformação. Em muitos casos estas tabelas não são simplesmente massas amorfas de valores numéricos; elas envolvem re lações muito importantes entre os elementos que contêm. Em sua mais simples,definiç&o, uma tabela deve ser uma lista linear de elementos com importantes propriedades de construção ' que podem responder a perguntas como: quem 6 o primeiro elemento da lista? Quem é o Último? Quais os elementos que precedem ou seguem um outro? Em sua forma mais complicada, uma tabela 6 uma matriz bidimensional ou n-dimensional para os valores maiores de n, o que pode ser uma estrutura em árvore representando a hierarquia de seus elementos ou então uma complicada estrutura multiligada com um grande nÚmero de conecções, compar&eis 2s do cérebro humano [lu . De um modo geral, para se aproveitar <ias facilidades que um computador oferece 6 importante adquirir-se uma boa compreenG são do relacionamento dos dados que se está usando, bem como das técni tas de representação e manipulação dessas estruturas dentro da mãqui- na. O objetivo 6 a flexibilidade e velocidade de processamento cIue elas podem oferecer. Para o caso especifico de CONV, a necessidade de se saber a todo momento informaçÕes sobre um segmento de reta qualquer ' componente do objeto em estudo, nos levou a procurar um modo simples ' de relacionar cada ponto com todos os outros conectados a ele. Esta so lução acarretou maior gasto de rnem6ria mas nos trouxe-a vankagem da velocidadetque 6 o fator de importância primordial na regeneração de uma figura em exibiqão numa tela de display. 4.2 - ESTRUTURAS DE DADOS MANIPULADAS POR CONV Os dados de entrada fornecidos pelo usu~ria~constam de uma seqüência de coordenadas muito dificeis de serem manipuladas e entendidas pelo programa. O tempo investido para percorrer tal cadeia 6 muito grande devido ao número enorme de comparações que devem ser feitas a fim de se identificar um segmento de reta e sua posição no objeto. Isso se deve, em parte, 2s repetições de referências a um ponto, pois cada vértice de um objeto se liga, no mínimo, a três tros. A figura 7 ilustra esta idéia e mostra como os dados mesmo ou- de entrada são armazenados na memória, em uma fila~cujoendereço simbólico 6 A. Figura 7 N é o número de pontos usados pelo usuário para o traçado do objeto no espaço. Uma estrutura mais flexível é apresentada na figura 8 onde cada ponto (vértice ou não) ligam. relacionado a todos os outros que aíele se. ............. ....... Pi Pz -. . Pontos b a s e Pi+k Pontos d e ligação A ESTRUTURA DE DADOS DO PROGRAMA Figura 8 Um ponto b a s e é a q u e l e tomado como r e f e r ê n c i a . 0s pon- t o s d e l i g a ç ã o s ã o a q u e l e s que formam um segmento d e r e t a com o ponto b a s e no espaço. Um o b j e t o t e m t a n t o s pontos b a s e quantos s ã o o s pontos que definem s e u t r a ç a d o . 4.3 - 4.3.1 PROCEDIP/IENTOS DE ENTRADA - FILOSOFIA DE TRATAMENTO Duas t a b e l a s s ã o usadas p a r a c o n c r e t i z a r a i e s t r u t u r a ' anteriormente d e s c r i t a : 1 - PT: Tabela onde s ã o armazenados o s pontos b a s e - Sua dimensão é, d e 2N+1 palavras,onde N é o número t o t a l d e pontos b a s e componentes do o b j e t o no espaço. Duas p a l a v r a s s ã o usadas p a r a cada r e f e r ê n c i a a um ponto b a s e . A p r i m e i r a contém o endereço do ponto na ca d e i a A do u s u á r i o . A segunda p a l a v r a 6 um p o n t e i r o p a r a a t a b e l a de pontos de ligação. 2 - SEG: Tabela de pontos de ligação. A s informações armazenadas em SEG são endereços de pontos guardados em A. Sua dimensão é v a r i á v e l e depende do o b j e t o a s e r exibido. O motivo pelo qual se usou endereços de pontos - e nao os próprios, f o i o de e v i t a r g a s t o de memória, lembrando que cada pont o é definido por três coordenadas. Esses e n d e r e ~ o ss e referem sem- 2 primeira palavra do nÕ de informaqão, em sua primeira ocorrência pre um modo de a c e l e r a r a pesquisa na r e f e r i d a cadeia, em A. a qual 6 f e i t a de modo seqüencial. - O PROCEDIMENTO 4.3.2 4.3.2.1 1 - DE MONTAGEM E PREENCHIMENTO DA ESTRUTURA - ~ e s c r i ç ã odas v a r i á v e i s LIVPT: Ponteiro para a próxima palavra l i v r e de PT. 2 - LISEG: Ponteiro para a prõxima palavra 1ivr:e ide SEG. 3 - FIXSG: Ponteiro para a primeira palavra de cada grupo de pontos ligação. 4.3.2.2 - Procedimento 1: 1.1. - início. 1.2 - ~ t e n d s p r i m e i r apalavra ao primeiro nó de A ] . 1.3 1.4 - PT [LIVPT] +R. LIVPTcLIVPT PT [LIVPT] + L I S E G + 1. . LIVPT e-LIWT f 1. de F i l a d e coordenadas f o r - necidas pelo usuãrio. > " t GUARDE SEU ENBEREÇO TOMf-; O Tabela d e endereços d e pontos que se ligam a o pesquisado. PROCEDIMENTO 1 - DIAGRAMA GERAL Figura 9 1.5 1.6 1.7 - Rtend - [ponto l i g a d o ao apontado por R ] SEG [LISEG] c R 1 , LISEGcLISEG f 1 . . O ponto apontado p o r R se l i g a a mais algum ponto? Se s i m , e m f r e n t e , c . c , vá a 1 . 9 . 1.8 - R l t [end nova l i g a ç ã o do ponto apontado p o r R] . vá 1.9 - R 1 aponta o Ú l t i m o nó de A? S e s i m , v a e m f r e n t e , 1.10 - T o d o s os pontos de A já f o r a m pesquisados? Se s i m , v á a 1 . 1 2 , C.C. 1.11 - O - Fim vá a 1.11. vá e m f r e n t e . nó apontado por R 1 já e s t á e m SEG? Se s i m , v á a 1 . 7 , 1.6 1.12 C.C. C.C. . . A f i g u r a 9 i l u s t r a o p r o c e d i m e n t o descrito a c i m a . vá a PROCEDIMENTOS GERAIS 5.1 - INTRODUÇÃO O procedimento para a eliminação das linhas escondi- das 6. um conjunto de quatro procedimentos principais, que funcionam co mo um todo, de modo que, em determinada ordem, a saída gerada por um se constitui na entrada para o outro. Os procedimentos trabalham sobre cada segmento de reta que compõe o objeto no espaeo. Um segmento 6 comparado com os outros e quando resulta invisivel é imediatamente marcado na fila de pontos para que não se perca tempo com posteriores comparações com ele. Mesmo invisível, o segmento de reta não 6 retirado da fila. Isso porque formar uma nova fila somente com os segmentos de reta visíveis seria muito dispendioso. A solução adotada foi guardar quarta palavra do nó de informação de um dos pontos extremos, são final sobre a visibilidade ou não do segmento de reta a na a deci- que per - tence. HS outro motivo pelo qual não é aconselhável destruir a fila de pontos. Se isso acontece o usuário perde a opção de chamar CONV tantas vezes quantas quizer em seu programa para obter diferentes vistas do objeto que deseja exibir, através do uso de uma rotina de transformação. Para facilitar a compreensão dos procedimentos vamos descrever os algoritmos gecziks usados por cada um em separado na ordem relativa a sua influência sobre os demais, Esta influência deve ser atendida apenas como hierarquia de transferência de informaç6es, como já foi dito anteriormente. 5.2 - OS PONTOS EXTREMOS: A i d é i a básica do a l g o r i t m o CONV é a que e s t e t r a b a l h a s o b r e l i n h a s e não s o b r e s u p e r f f c i e s . I s t o s i g n i f i c a que o s s ó l i d o s serem e x i b i d o s s ã o c o n s i d e r a d o s como um c o n j u n t o d e segmentos a de reta c u j a s i t u a ç ã o no espaço é conhecida a t r a v é s das coordenada Pi(xi,yi,zi), d e s e u s pontos extremos. A p r i m e i r a fase do a l g o r i t m o se preocupa em conhecer o s pontos extremos da f i g u r a . I s s o q u e r d i z e r que dada uma £i g u r a P , p r o j e ç ã o do o b j e t o Pi do espaço s o b r e o plano x ' Y ' definiremos o s pontos d e P XMIN ( P ) , XMAX (P) , Y M I N (P) , .YMAX ( P ) da s e g u i n t e meneira: XMIN (P) ( xi , V xi P FIGURA APRESENTANDO MAIS DE UM PONTO EXTREMO PARA CADA SITUAÇÃO Figura 1 0 haja visto- casos como o que mostra a figura 10, onde, por exemplo os pontos A e B satisfazem a primeira condiqão acima. Adotaremos a seguin te convençao: dada uma figura P t qualquer do plano X ' Y ' e seus pontos XMIN de abcissas iguais, existe um C tal que: Um xlserá escolhido de modo que: x 3! C C I V x ; € C , y;(y! r yj€nÕ[x!], 3 yf€nÔ[xl] O objetivo desta fase 6 demarcar a área a ser pela figura no plano X ' Y t . Desta maneira podemos afirmar que pontos de P pertencentes 3 projeção de P' sobre X ' Y ' ocupada todos os deve satisfazer ' 5.2.1 A BUSCA DOS -P O N T O S EXTREMOS: A função deste procedimento 6 a de detetar e marcar os pontos considerados críticos. Trata-se dos pontos extremos definidos ' anteriormente. Devido a sua simplicidade, deixamos de apresentar o dia grama geral do procedimento. 5.2.1.1 - ~ e s c r i ~ ãdas o variáveis: As variáveis usadas neste procedimento são: 1 - XMIN, XMAX, YMIN e YMAX: variáveis que guardam os valores dos pontos críticos para posteriores consultas. : 2 - R: Ponteiro para a primeira palavra do nó que se quer pes quisar. 5.2.1.2 2.1 - - Procedimento 2 início- S a l v e X e 'Y d e s s e ponto. 2.4 - 2.5 - Todos o s nós já £oram v i s i t a d o s ? Se sim,vá a 2 . 1 0 , 2.2 2.3 R c e n d r p r i m e i r a p a l a v r a do p r i m e i r o nó da f i l a d e pontos]. RtR 9 1 - R aponta o nó d e menor X? Se s i m , s a l v e X e vá a 2 . 4 , frente 2.8 Idem p a r a o menor Y 2.9 - Idem p a r a o maior Y Idem p a r a o maior X C.C. extremo 5.3 - vá em . . . 2.10- Marque na f i l a d e pontos todos o s nós que contenham algum 2.11- Fim ' . - 2.7 vã em . frente 2.6 CGC. ponto . . OS PONTOS QUE PERTENCEM AO CONTORNO-PONTOS DO 19 NÍVEL O contorno d e um o b j e t o P, convexo, que se p r o j e t a de modo o r t o g o n a l s o b r e o s i s t e m a bi-dimensional d e e i x o s X'Y1,é um p o l í gono I?' d e um número f i n i t o d e l a d o s , d e n t r o e s o b r e o q u a l se l i m i t a m as p r o j e ç õ e s d e t o d a s a s a r e s t a s que compõem e s s e o b j e t o . I s s o s e deve à p r ó p r i a d e f i n i ç ã o d e o b j e t o convexo. 0s l a d o s d e P ' s ã o , d e s t a manei r a , as d a s a r e s t a s do contorno do o b j e t o P segundo um obser- vador s i t u a d o no i n f i n i t o , É i n t u i t i v o p o i s c o n c l u i r q u e , independente mente do f a t o d e haverem a r e s t a s d e P que e s t ã o escondidas ou não, o contorno do o b j e t o s e r á sempre v i s í v e l a o s o l h o s do observador. Desse modo, o c o n j u n t o d e l a d o s de P ' é a p r o j e ç ã o o r t o g o n a l d e P t a l como o observador pode vê-lo. 5.3.2 - FILOSOFIA DE TRATMENTO Uma das p r i m e i r a s sensações que o o l h o humano tem ao ' se d e p a r a r com um o b j e t o é a sensação de massa, de espaço ocupado p e l o mesmo. P a r a ele não c o n s t i t u i problema o reconhecimento d e s i l h u e t a s . a Sua capacidade d e v e r , d i s t i n g u i r e comparar formas, bem como de t r a n s m i t i r ao c ê r e b r o t o d a s as informações n e c e s s á r i a s s o b r e p r o f u n d i dade, e t c , é i n s t a n t â n e a . P a r a uma máquina porém, e s s e s pmoedimentos i n t u i t i v o s não s ã o t ã o f á c e i s . n e c e s s á r i o que se envolva muito tempo de computação a t é que e l a p o s s a " v e r " , "compreender" e e x i b i r o que"viul' e e s t á guardado em s u a memória. a t r a v é s do PROCEDIMENTO 3 , d e f i n e Por c o n ~ e n ~ ã oCONV, , o contorno P ' do o b j e t o s o b r e X'Y', examinando-o no s e n t i d o h o r á r i o . Como ponto de p a r t i d a 6 usado um dos pontos extremos previamente c a l c u l a d o s . E s s e s pontos, p o r s u a p r ó p r i a condição s ã o i m p l i c i t a m e n t e compo n e n t e s d e P'. A busca dos demais pontos é f e i t a de modo muito simples a t r a v é s do c o e f i c i e n t e a n g u l a r c o n v e n i e n t e a cada s i t u a ç ã o dos pontos d e P'. 5.3.2.1 - ~ é t o d od e ação O c o e f i c i e n t e a n g u l a r ou d e c l i v i d a d e d e uma r e t a e a t a n g e n t e t r i g o n o m é t r i c a d e s u a i n c l i n a q ã o . O c o e f i c i e n t e a n g u l a r d e uma r e t a que p a s s a por d o i s pontos P i (xi,yi) e P: ( x ; , ~ ; ) é dado por: Para £ a c i l i t a r a escolha dos c o e f i c i e n t e s angulares, ' cada f i g u r a apresentada ao programa é imediatamente d i v i d i d a em quatro setores: 19 s e t o r : Semi-plano s i t u a d o à esquerda da r e t a que l i g a o s pontos XMIN e YMAX. Para o s pontos desse s e t o r o c o e f i c i e n t e angular escolhido 6 o maior dos mi t a l que mi) O . 29 s e t o r : Semi-plano s i t u a d o acima da r e t a que l i g a o s pontos YMAXe-XMAX Para os pontos do 29 s e t o r , o c o e f i c i e n t e angular escolhido ê o dos mi t a l que mi ( O maior . 39 setor: Semi-plano s i t u a d o Y M I N . Nesse caso é a d i r e i t a da r e t a que l i g a o s pontos XMAX e tomado o maior dos mi t a l que mi> 0 . 49 setor: e Semi-plano s i t u a d o abaixo da r e t a que l i g a o s pontos Y M I N XMIN. Para pontos nesse s e t o r é escolhido o maior do mi 5.3.2.1.1 t a l que m i < 0. Casos p a r t i c u l a r e s H; casos em que os c o e f i c i e n t e s angulares podem assu- m i r v a l o r e s como zero e i n f i n i t o , como nos casos de r e t a s p a r a l e l a s ao eixo dos .X' e das p a r a l e l a s ao eixo dos Y', respectivamente. A s solu - Ç Õ ~ Sadotadas para estes casos em relação a cada s e t o r são: - Para o 19 s e t o r nunca s e r á i n t e r e s s a n t e a escolha de um c o e f i - c i e n t e a n g u l a r nulo. I s t o se deve ao f a t o de que n e s s e c a s o h a v e r á pel o menos um que s a t i s f a ç a a condição d e ser maior que z e r o , a menos que s e t e n h a a t i n g i d o um ponto ~ ~ ~ ~ f A ~ a o o n v u n i e n t e ~ - P a r a o 29 s e t o r , s e x; - xi > 0, e n t ã o o segmento d e r e t a é considerado como p e r t e n c e n t e ao contorno, c a s o c o n t r á r i o x; xi poderia acontecer: 1 - Q u e b r a r o s e n t i d o convencionado d e v a r r e d u r a dos pontos da figura (sentido horário) 2 - . Pegar um ponto já pesquisado, a l t e r a n d o assim a l i s t a de pontos do contorno. - P a r a o 3 9 s e t o r a s i t u a ç ã o 6 análoga 5 do l? s e t o r . P a r a o 4 9 s e t o r , s e x; - xi < o, csecpxt;o de - reta x'2 x!3 6 mnside. . - rado como p e r t e n c e n t e ao contorno. Ver i t e n s 1 e 2 r e l a c i o n a d o s ao 2 9 setor. - P a r a o 1 9 s e t o r , se yi - y i ) O, é o segmento d e r e t a y i y i c o n s i d e r a d o como componente do contorno da f i g u r a , c a s o c o n t r ã r i o pode r i a acontecer: 1 - Quebrar o s e n t i d o convencibnado d e v a r r e d u r a dos pontos da f i g u r a (sentido horário) 2 - Pegar . um ponto já pesquisado, o que a l t e r a a l i s t a de pontos do contorno. - P a r a o 29 s e t o r e s s e c o e f i c i e n t e a n g u l a r não 6 i n t e r e s s a n t e . Sua o c o r r ê n c i a i n d i c a que o 3 9 s e t o r f o i alcançado. - P a r a o 39 s e t o r , se yi - Y i < O, o segmento d e r e t a y; yi a e c o n s i d e r a d o como p e r t e n c e n t e ao contorno, c a s o c o n t r á r i o não. A j u s t i f i c a t i v a s s ã o a s mesmas a p r e s e n t q d a s p a r a o l? s e t o r . - Para o 4 9 s e t o r o motivo da não escolha de m = o o é análogo ao apresentado para o 29 s e t o r . Ao término da comparação exaustiva de todos os segment o s de r e t a que compõem a f i g u r a , uma nova f i l a de pontos e formada. E s t a f i l a contém somente pontos pertencentes ao contorno. Seu o b j e t i v o 6 minimizar o número de acessos 5.3 - 3 - 5.3.3.1 1 - f i l a de pontos componentes do o b j e b . A ;BUSCA DOS PONTOS DO 19 N ~ V E L - ~ e s c r i ç ã odas v a r i á v e i s TABPC: Vetor 1 x N , onde N é o número de pontos do contorno armazena - dos. 2 - TABP: Ponteiro para TABPC. 3 - PONTO: Ponteiro para o nó que contém o ponto base a t u a l 4 - SECT: Ponteiro para o s e t o r a t u a l . 5 - PAL: Ponteiro para um ponto l i g a d o ao ponto b a s e . 6 - ALFA: v a r i á v e l com o o b j e t i v o de guardar o c o e f i c i e n t e angular r e t a que passa pelos pontos base e 7 - ' de ligação. ALFMX: v a r i á v e l com o o b j e t i v o de guardar o maior ALFA. da 5.3.3.2 - ' Procedimento 3 . 3.2 - PONTO+ end [nó XMIN] 3.3 - S e end[nó Y M A X ] ~ end[nó XMIN], 3.4 - SECTt-1. 3.1 ~nicio . . TABP- vá a 3.5.c.c. . 3.6 - PAL c e n d [próxima l i g a ç ã o d e PONTO e m PT], 3.7 - S e SECT=O, vã a 3.10, 3.8 - S e SECT=l, vá a 3.20,. c;c. vá e m f r e n t e . 3.9 - Se 3.10 - 3.5 TABPC [TABP] - PONTO SECT=2 vá a 3.30, TABP + 1 c.c. vá em f r e n t e . vá a 3 . 3 9 , C.C. S e não o c o r r e u nenhum d o s c a s o s e s p e c i a i s , d e t e r m i n e ALFA e vá em frente, 3.11 6 vá e m f r e n t e . C.C. vá a 3 . 4 7 . S e ALFMX não f o i d e t e r m i n a d o e m r e l a ç ã o a o p o n t o b a s e a t u a l f a ça ALFMtALFA e vá a 3.6. c .c. vá e m f r e n t e . 3.12 - S e ALFMX <ALFA f a ç a ALFMXa-ALFA, 3.13 - S e já foram p e s q u i s a d a s t o d a s as l i g a ç õ e s d e PONTO, vã e m f r e n -- te, 3.14 - 3.15 3.16 C.C. .- S e ALFMX 6 o c o e f i c i e n t e a n g u l a r d a r e t a q u e p a s s a p o r - em frente, C.C. SECTcSECT + S e ALFMX vá 1. 6 o c o e f i c i e n t e angular da reta que passa p o r C.C. XMAX, vã a 3 . 1 8 . - SECTGSECT + 1 . 3.19 3.20 - a 3.5 . S e não o c o r r e u nenhum d o s c a s o s e s p e c i a i s , d e t e r m i n e ALFA e vá em frente, 3.21 YMAX vá a 3 . 1 8 . - PONTO c e n d [nó ALFMXI . - vá a 3 . 5 , 3.18 vá e m f r e n t e . vá a 3.6. vã e m f r e n t e , 3.17 C.C. C.C. vá a 3 . 4 7 . S e ALFIYIX não f o i d e t e r m i n a d o e m r e l a ç ã o a o p o n t o b a s e a t u a l , ' f a ç a ALFMXtALFA e vá a 3.6. C.C. vá e m f r e n t e . 3.22 - S e ALFA> ALFMX, f a ç a ALFMXtALFA, 3.23 - S e já foram p e s q u i s a d a s t o d a s as l i g a ç õ e s d e PONTO, te, 3.24 - vá a 3.6 C.C. C.C. vá e m f r e n t e . vá e m f r e n - . 6 o c o e f i c i e n t e angular da reta que passa p o r S e ALFMX em frente, C.C. XMAX .vá vá vá a 3.23 3.25 - SECTtSECT + 3.26 - S e ALFMX o c o e f i c i e n t e a n g u l a r d a r e t a qne p a s s a p o r Y M I N , em frente, C.C. SECTcSECT + 1. vá a 3.28.. PONTO c end [nó ALFMX] 3.29 - 3.30 - S e não o c o r r e u nenhum d o s casos e s p e c i a i s , d e t e r m i n e ALFA e 3.27 3.2 8 vá a . . 3.5 em frente, 3.31 1. - S e ALFMX não . vá a 3.47 C.C. f o i d e t e r m i n a d o e m r e l a ç ã o a o p o n t o b a s e a t u a l , £a - ça ALFMX-cALFA e vá a 3.6, 3.32 3.33 - 3.34 - C.C. S e ALFA)ALFMX f a ç a ALFMXcALFA, vá e m f r e n t e . C.C. vá e m f r e n t e . S e já foram p e s q u i s a d a s t o d a s a s l i g a ç õ e s d e PONTO, te C.C. vá v5 e m f r en vá a 3.6 S e ALFMX é o c o e f i c i e n t e a n g u l a r d a r e t a que p a s s a p o r Y M I N em frente C.C. + vá a 3.38 ;vá . . 3.35 - SECTtSECT 3.36 - S e ALFMX é o c o e f i c i e n t e a n g u l a r d a r e t a q u e p a s s a p o r XMIN f a - 1 ça TABPC [TABP] +PONTO e vh a 3.46, 3.37 3.38 3.39 - PONTO+-endCnÓ ALFMX] vá C.C. siga em frente. . a 3.5. S e não o c o r r e u um d o s c a s o s e s p e c i a i s , d e t e r m i n e ALFA e vá em ( O coef i e n t e a n -s u l a r TO CRÍTICO ---- adequado a um d e t o r depende do mesmo. ( (Item 5.3.2) OME A LINH I COM I w MAIOR COEF; ANG. O GUARDE : PONTO E LIGACÃO MUDE DE SETOR O novo p o n t o b a s e ESCOLKA O NOVO PONTQ BASE I PROCEDIMENTO 3 DIAGRAMA GERAL F i g u r a 11 --- - - - - - s e r á TOME SUAS LIGAÇÕES o p o n t o d e ligação s e l e c i o n a d o . - frente, - 3.40 vã a 3.47. C.C. Se ALFMX não f o i determinado e m r e l a q ã o ao ponto b a s e a t u a l , f a ç a ALFMXtALFA e vá a 3.6. C.C. vá e m f r e n t e . 3.41 - Se ALFA) ALFMX, f a ç a ALFMXeALFA, 3.42 - Se já foram p e s q u i s a d a s t o d a s as l i g a ç õ e s de PONTO vá e m f r e n t e C.C. - 3.43 S e ALFMX é o c o e f i c i e n t e a n g u l a r d a reta q u e p a s s a f o r XMIN 3.45 - 3.46 - FIM. 3.47 3.48 Se 6 o c a s o m=wvá a 3.50, C.C. v5 e m f r e n t e . PONTOtPAL. Se o c o r r e r um d o s c a s o s d e ordenadas e s p e c i a i s - vã a 3.5. C.C. vá a 3.5, - S e não C.C. vá a 3.52 S e o c o r r e r um dos c a s o s d e a b c i s s a s e s p e c i a i s PONTOcPAL C.C. v á l-i . vã a 3.6 Se não f o r o c a s o d e mudanças de s e t o r vá a 3.5, das 3.51 1, a 3.5. das 3.50 vá vá e m f r e n t e . C.C. PONTO -+end [nó WFMX - 3.49 vá e m f r e n t e . vá a 3.6. a 3.46 3.4 4 C.C. v~li- vã a 3.6. f o r o c a s o de uma mudança d e s e t o r vá a 3.5, L' C.C. I em frente. 3.52 - SECTGSECT 3.53 - vá + 1 ao s e t o r e s p e c i f i c a d o p o r SECT. O procedimento 3 5.4 - 6 i l u s t r a d o p e l a f i g u r a 11. O C R I T ~ R I O DE VISIBILIDADE P o r d e f i n i ç ã o , t o d o s o s segmentos d e r e t a q u e compõem uma f i g u r a convexa são i n t e r i o r e s a s e u c o n t o r n o ou pertencem a ele. Um segmento d e r e t a será a i t o v i s i v e l se e somente se i /S.=' / c o n t i v e r , p e l o menos,três pontos v i s í v e i s . I s s o porque nem sempre O segmento que une d o i s pontos v i s s v e i s é v i s í v e l . 5.5 - OS PONTOS LIGADOS AOS DO CONTO2NO-PONTOS DO 2 9 N ~ E L A p e s q u i s a d a s l i g a ç õ e s v i s í v e i s dos pontos que s e con - ' nectam a o s do c o n t a r n o d e um o b j e t o 6 f e i t a no espaço t r i d i m e n s i o n a l - a t r a v é s das coordenadas X. O s pontos do 2 9 n í v e l s ã o aqueles c o n s i d e r a dos v i s í v e i s e que s e ligam a o s do contorno. 5.5.2 - F I L O S O F I A DE TRATAMl3NTO través d e um p l a n o que p a s s a p o r t r ê s pontos consecut i v o s do contorno pode-se d e t e r m i n a r q u a i s o s q u e se s i t u a m na frente e q u a i s o s que se s i t u a m a t r á s do mesmo. O s p r i m e i r o s s ã o c o n s i d e r a d o s v i s í v e i s ao p a s s o que o s segundos, não. 5.5.3 - O CASO DOS PONTOS EM L I N H A RETA O procedimento 4 se b a s e i a na determinação d e p l a n o s , tomando p o r b a s e t r ê s pontos c o n s e c u t i v o s do contorno d a p r o j e ç ã o um o b j e t o s o b r e o p l a n o X'Y'. A s e l e ç ã o dos pontos não s i t u a d o s de sobre o mesmo s u p o r t e d e r e t a 6 f e i t a a n t e s d e s e e x e c u t a r o procedimento 4 propriamente d i t o . A o c o r r ê n c i a d e t r ê s ordenadas i g u a i s a s l três a b c i s s a s i g u a i s r e s u l t a na p e s q u i s a d e um novo ponto do contorno d a f i g u r a , e assim sucessivamente a t é que s e q u e b r e o l a ç o ( f i g u r a 1 2 ) . A-?BUSCA DE PONTOS DO 2 0 NIVEL - De%eriçaoveis 5.5.4.1 1 - PPC: P o n t e i r o p a r a o la. l i g a ç ã o d e PPC1. Ponto do contorno 2 - . PPC1: P o n t e i r o p a r a um ponto do contorno, o ponto b a s e . 3 - PPC2: P o n t e i r o p a r a a 2a. l i g a ç ã o d e PPC1. Ponto do c o n t o r n o . 4 - PPC3: P o n t e i r o p a r a o ponto l i g a d o a PPCl que não p e r t e c e ao contarno (em g e r a l ) 5 . - N: Contador d e pontos s o b r e um mesmo segmento d e r e t a . 5.5.4.2 - Procedimento - 4 4.4 - Se X'CPPCI = PPC1 vá e m f r e n t e , 4.5 - Se X ' CPPCJ 4.6 - N+-N + = PPC2 C.C. vá a 4.8 vá em f r e n t e , c . c . vá a 4 . 10&. 1. . vá 4.8 - 4.9 - Se Y'[PPC]=Y'EPPC~] vá a 4.6 v ã e m f r e n t e 4.10 - P r o c u r e PPCl e m PT 4.11 - Pegue 4.12 - 4.7 PPC2tPPC + 3 a 4.5. S~.Y*[PPC'I=Y' [ P P C ~ ] vá e m f r e n t e c . c . vá a 4.10 . a p r i m e i r a l i g a ç ã o d e PPCl em SEG . Se f o r o mesmo nó apontado por PPC vá a 4 . 1 4 , c.c. vá e m f r e n t e . 1 Plano formado por três pontos não em linha reta,do contorno. FORME UM PLANO OPACO I ESCOLHA O -PONTO BASE TOME SUAS LIGAÇ~ES JGUARDEl PONTOS VISÍVEIS p s pontos visíveis - - - - - - são aqueles que podem ser vistos pelo obser vador em relação ao (FIM) PROCEDIMENTO 4 - DIAGRAMA GERAL Figura 12 4.13 4.14 - Se for o mesmo nó apontado por PPC2 vã em frente, C.C. Pegue a próxima ligação de PPC1 em SEG e vã a 4.12. vã a 4.15. 4.15 - Se for zero vá em frente, 4.16 Se N=O vá a 4.21, 4.19 - NcN-1 4.20 - Se todos os pontos de TABPC ja foram pesquisados vá a 4.26, 4.17 4.18 C.C. C.C. v$ a 4.22. vá em frente . +1 . PPClePPC + 2. PPCePPC . vá a 4.10. C.C. vá em frente. 4.21 - PPCcPPCl. 4.22 - P P C +ligações ~ de PPC1. 4.23 - Xlcponto de projeção de PPC PPC2 í3 PPC1 PPC3 sobre X'Yt 4.24 Se X [xl]EPPC te 4.25 PPC3 vá a 4.27, C.C. vá em fren- . - PPC1 PPC3 6 4..27 4.26 PPCS)X[XlJ€PPCl . visivel. Marque os nós que a representam e vá a 4.20. FimPegue a próxima ligação de PPC1 em SEG e vá a 4.15. PROCEDIlQ3NTOS DE S A ~ D AE ROTINAS DE TRANSFORMAÇÃO- 6.1 - AS LINHAS V I S ~ V E I S - PONTOS 3 9 N ~ V E L A função do procedimento de saída 6 interpretar as in- formações captadas pelos procedimentos anteriores, definindo a figura a ser exibida. No caso de CONV, como o processamento dos segmentos de reta têm sido efetuados "de fora para dentro da figura11um dos procedi mentos de saída deve se preocupar em "fechar" a projeção da mesma bre X'Y'. so- ' Trata-se da complementação do processo de busca das linhas visíveis e, consequentemente, das linhas escondidas que conclue o algo ritmo. A decisão sobre a. visibilidade ou não dos segmentos de reta, tendo em vista a convexidade do objeto se baseia em duas regras: 1 - O segmento de reta que une dois pontos visíveis (não do contorno) é sempre visível. 2 - O segmento de reta que une dois pontos escondidos é sempre escondi do. As informações básicas sobre a visibilidade dos pontos já foi obtida e armazenada na quarta palavra componente de cada nÔ informação (palavra I de trabalho) de . O mesmo critério se aplica a todos os segmentos - ta que pertencem às faces do objeto. e de re - considerado visível todo aquele segmento de reta situado sobre uma face visível do objeto(subfigura). - O tratamento dispensado a esse nível de pontos é inteiramente dependen te dos procedimentos anteriores, resultando na Última fase do algoritmo. 6.2 - A BUSCA DAS LINHAS VIS~VEIS Este procedimento 6 pequeno e rápido. Sua função .. e a de completar as palavras I de cada nó. A Única variãvel usada 6 P, cujo objetivo 6 o de percorrer a fila de pontos cujo endereço simbólico descobrir os pontos do 30 nível, como mostra o procedimento. 1nScio. Pt[end primeiro nó de A]. Se o ponto referenciado por P 6 visfvel vá a 5.6, C.C. vá em C.C. v5 a 5.3. frente. PtP f 1 . Se já foram visitados todos os nós de A vá a 5.9, Localize o ponto referenciado por P em PT. Marque convenientemente todas as ligaqões do ponto apontado por P vá a 5.4 . Fim. Ao término desta fase, a figura já se encontra completamente definida e o comando é passado ao procedimento o qual se encar regará da exibição da mesma, mediante chamadas convenientes 2 s rotinas que compoem o gerador de imagens do sistema. Toda utilização do campo I de um nó 6 feita visando a determinação das linhas escondidas. Contudo,nem todos os bits de I fa- zem p a r t e do código d e v i s i b i l i d a d e d a s l i n h a s que compoem uma f i g u r a . e ' bom r e s s a l t a r que o s mesmos não f i c a r a m t o t a l m e n t e i n a p r o v e i t a d o s , t e n d o s i d o u t i l i z a d o s c o m o b i t s d e t r a b a l h o no d e c o r r e r d a s d i v e r s a s £a s e s d e p e s q u i s a dos pontos. A s s i m sendo, o código e s t u d a d o p e l o proce- só f a z r e f e r ê n c i a a o s b i t s 10,11,12 e dimento Q e não ao conteiklo t o t a l d e & como se segue: 1 - Bits 2 - Bits 3 - B i t s 10 W l l l i g a d o s : l i n h a i n e x i s t e n t e que une d o i s pontos LO' e ., Q l i g a d o s : l i n h a v i s í v e l com l i g a ç õ e s v i s í v e i s . e 12 O l i g a d o s : l i n h a p e r t e n c e n t e ao c ~ n t o r n o( v i s l v e i ) . visl- v e i s e complanares ou l i n h a r e p e t i d a , segundo d e f i n i ç ã o do usuário, 4 - B i t O desligãdo l i n h a escondida, d e acordo com a posiçãn a t u a l do o b j e t o no espaqo. 5 - B i t s 10,11,12 e 0 ' d e s l i g a d o s l i n h a inexistente ou-repetida sobre uma f a c e escondida do s ó l i d o . 6.4 - A EXIBIÇÃO DA FIGURA Um p o n t e i r o semelhante ao usado no procedimento ante- r i o r é usado, com o mesmo p r o p ó s i t o no procedimento 8 , como s e segue: 6.4.1 6.1 6'. 2 6.3 - - PROCEDIMENTO 6 ~nicioP c e n d [primeiro nó d e A] Se o nó apontado por P r e p r e s e n t a um ponto v i s í v e l , vá a 6.7, C.C. 5.4 - . Envie vá em f r e n t e . 2 unidade e x i b i d o r a a s coordenadas x ' e y ' da nó apontado p o r P , juntamente com a condição d e l i n h a v i s í v e l . - 6.5 - PtP q.6 - Se t o d o s o s nós d e A já foram v i s i t a d o s v ã a 6 . 9 , 8 . 7 - Envie + 1. 2 unidade e x i b i d o r a as coordenadas C.C. vá a '6.3. x ' e y ' do nó apontado p o r P , juntamente com a condição de l i n h a i n v i s ~ v e l . - 6'.8 - vá 6.9 - Fim. 6.5 - ROTINAS DE TRANSFOWÇÃO a 6.5. - A s r o t i n a s d e transformação promovem uma v i s ã o d i f e r e n t e d e um o b j e t o no espaço. Um exemplo d e s s a f a c i l i d a d e 6 a r o t a ç ã o em t o r n o d e um e i x o coordenado. P a r a cada ponto p e r t e n c e n t e ao o b j e t o , no v a s coordenadas s ã o o b t i d a s a p a r t i r das equações 0,@ e @ . Sejam OX e OY o s e i x o s p r i m i t i v o s , O X ' e OY' o s novos ROTAÇÃO DO PLANO XY EM TORNO DO EIXO DOS Z Figura 13 eixos,& O ângulo segundo o q u a l o s e i x o s g i r a r a m e O a origem comum a o s d o i s s i s t e m a s , como mostra a f i g u r a 10. A s fórmulas d e r o t a ç ã o dos e i x o s segundo um ângulo são as seguintes: X' = X.COS- y ' = x.sena + y.senm O y.cosa @ , Devido a problemas P r o v e n i e n t e s da c o n f i g u r a ç ã o mínima de hardware do s i s t e m a h o s p e d e i r o , o p a c o t e g r á f i c o a p r e s e n t a d o neste t r a b a l h o tem s é r i a s r e s t r i ç õ e s q u a n t o a ocupação d e memória e f u n c i o n a a l i d a d e . O manuseio e s p e c í f i c o d e coordenadas i n t e i r a s a f e t a d e modo l mentável a s r o t i n a s d e t r a n s f o r m a ç ã o , t i r a n d o - l h w a n a t u r a l p o k e n c i a li dade. Contudo, no c a s o d e s u b s t i t u i ç ã o do o s c i l o s c Ó p i o p o r um g r á f i c o , o programa pode ser f a c i l m e n t e adaptado, b a s t a n d o display que para i s s o sejam i n t r o d u z i d a s pequenas modificação n a s r o t i n a s que montam ou manipulam a s e s t r u t u r a s d e dados. E s s e p r o c e s s o não i m p l i c a r á em grandes d i f i c u l d r i d e s devido 5 modularidade do programa, o que p e r m i t e ..J ' o teste e s p e c í f i c o d e cada uma de s u a s f a s e s . Q u a l q u e r expansão l e v a d a a e f e i t o e m n í v e l d e hardware manipulador de e n t r a d a s com a f i n a l i d a d e de t o r n a r o s i s t e m a i t e r a t i v o não a f e t a r á o funcionamento do programa, desde que se t e n h a o cuidado d e a t u a l i z a r a f i l a de pontos que c o n s t i t u e m a c a d e i a d e e n t r a d a do usuário. A aplicação m a i s importante d e s t e t r a b a l h o 6 didática. Pretendeu-se m o s t r a r um a l g o r i t m o s i m p l e s e g e r a l p a r a a solução problema d a s l i n h a s escondidas p a r a o c a s o d e f i g u r a s convexas, o do que pode s e r v i r como b a s e p a r a f u t u r a s expansões e melhoramentosdo s i s t e m a proposto. . APÊNDICE 1 LISTAGEM DOS ALGORITMOS USADOS - PROCEDIMENTO P C10260 00262 00.262 00263 00264 OL15 01 h5060000 00265 0 2 1 7 01 6 0 0 0 0 3 6 3 00266 a i 1 9 UL hWOOO364 nl28 01 6 5 8 0 0 3 5 4 0 l l . D O C3.00 I U l b E 01 0 4 8 0 8 3 4 A 10120 O C 1 D Z 10121 01 i340001163 C102 10223 O 0124 61 8+00036Ç 0 1 2 6 01 S5S0035B 0 1 2 8 0 1 C4000364 Q12A O O100 OISS Q E C400035C 0 1 2 8 O 0101 I Q12E O 0 1 2 F 02 0 1 3 1 Of 0133 01 3 1 4 5 01 01'3'7 U 0138 QL 013A O 0 1 3 0 01 8 2 3 0 OP 013F 0142 0143 O145 6i47 0149 0148 014D 014F 01 OI. O1 UX 01 Of 00267 00268 00269 00270 00271 00272 00273 Lb STQ LSX L13 00274 00275 00276 00277 00278 0027'3 BUSCA 00302 00302 90303 00304 00305 00306 00307 00308 0161 01 C400035D 0 0 3 0 9 0163 01 04000366 00310 0 x 6 5 01 4 Ç 0 0 0 3 9 1 0 0 3 1 1 1 1 L1 k LDX S STO S BN L 00298 002 9'3 O0300 t STO MBX STX L0 C@ 570 Li3 GFI , INZ kUG2 a o LU i SPQ C103 01 01 O D100 0150 fl 7101 0151 O1 6C00035C 0153 O ld10 0154 0 13100 O f 5 5 01 C 4 0 0 0 3 6 4 0 1 5 7 01 8400Q35E 0159 01 0 4 0 0 0 3 6 5 O P S B 01 C r C O 0 0 9 8 015D OL 9 4 0 0 0 3 5 5 O B 5 F 31. 4C1803CA t SIO 7102 t3028fl 8U000358 O U 2 8 9 C400035C OU282 0 4 0 0 0 3 6 1 00283 65800364 00284 OU285 ECO00350 00286 D103 00287 C4800364 0 0 2 8 8 9 4 0 3 0 3 5 6 00283 04000365 00290 9 4 0 0 C 3 6 3 OU291 4C280155 U0292 C400035F 0 0 2 8 3 D40QOSó6 00294 4C00033L 0 0 2 9 5 6580035C 00296 C4000365 00297 1 h! 1 ATZ I t LIVPT 510 3 LOX Li2 STD MGX SfX SRA STQ LC LLSEG 1 2 LIVPf LISEG FIXSG i 1 LU62 t 2 3 L OITO 1 3 k tUG2 F BUBTR L LUG3 t LUG1 INI L L L I1 L UM CHBVE OUT LISEG LUG3 1 O 1 1 t l LISEG 16 2 O LUG2 Li3 t L L L 5 t lUG3 L n STO BZ QUATR LUG3 MÂRK STO L NOIIOP QITB CHAVE fl i OUT Lf3 BSS 85s L 100 110312 00313 PT SEG O167 00314 L I V P T CC PT 01Cf3 f)0315 00316 0031 7 0031d LISES CC SEG O í T G GC GUATR DC 8 4 UM *- * * *-* ***-* 0064 0190 0008 0004 0002 0000 000t3 @C00 0080 0000 0000 0000 OUUO 0000 00319 00320 O 0 3 2 1. 00322 00323 00324 00325 00326 C032 7 DC FIXSG Gt LUG CC LUG2 Df; cudi CC ATX ATY ATL GF2 OC O0349 90E5 00350 45200378 00351 C101 QUE2 00363 00364 DOU0 06365 b5800361 OU3óh C100 00367 IILISfG LUG3 sra L o . MDX SdA ã 1 16 1. O LU L STU STX MAIS1 L3 A STO S TU LC S BZ LCX' LD S . LUG2 LUG3 L MAR# LUGZ NUVBP 3 1 LUG2 1 U ATX &?AIS1 Z 1 LB S BfiP ATY MAISí 1 2 LU OUT MARK P 1 1 tlSEG tUG3 QUATR BHZ 4L000135.00358 C102 *-* *-* *-* *-+ 570 4C280-3 78 0 0 3 5 4 C1.02 00355 90DF 00356 4C1003 78 0035 f DO01 CC DC tDX ?P-& *-'x L2 00352 00353 65800565 00353 C100 00360 DO02 00361 C 1 0 1. 00362 $ at $- % tlJG3 OC CHAVE OC ATXO EC ÁTYO OC ATzu C100 $- cc OCO0 nioct ou337 C4000078 0 0 3 3 8 UlOL 00339 69f4 00340 00341 COEC 8ifE4 00'342 DOE9 00343 DOE4 00344 C4000098 0 0 3 4 5 90E5 00346 4 C l 8 0 3 C A 08347 65800364 00346 1 P R I M P DC 0000 003.28 0032'3 O000 00330 0000 00331 6580035L 00332 COF5 00333 D1OC 00334 7101 00335 1810 00336 40C S ATZ EhZ VAIS1 E t LUX fl L U G 3 CD STO tC STD Let STO LDX GUTRG L# BUSCA 1 0 ATXO L 11 ATYO 1 2 ATZO Y l FIXSG f O Bt STO LU S BMZ BUTK LUG I LUG ATXO PEGN LD LUG A S'iQ ttf S UFI LIIC LUG I ATYO P fGN LtfG E;VZ LD A UM SfO LD LtiG 1 S LUG ATZO BNZ P f GN CrUTK LD CHAVE PEGN BZ LC SRA EER RZ HEX ECK L CHAVE 3 UM C LEI €!%L LU ECR BZ CHAVE L0 UM G f1 CHAVE ECR UM 3 BZ NOVt'IP L D X STX Gf2 LI A 1 LUGZ LiJ L 3 SK9 3 UN ATUA 1 4 €@H BkL HUX a. o LI! S f32 f3 ATUA LDX VOX STX r3 FIM lutAISL 1 1 1 Q OUTRO slin &OVO UM fNI LCX L8 STO L HARK FIM NOVO II CISEG 1 1 Li. L I S E G L IgtlIPT i l LTVPT L WAKK 1 0 - PROCEDIMENTO 2 o& *-* +-* *-* *-* P O N BC ~ I- $ XF1Itti BC Y%Ih BC YgAX XMAX 13C s*+*%c$*Q**$**$**~***~c*****;~:*********** 9 +* * C A L C U L O D A S CC2ORDENADAS V A X I M A S h% CORPO LCtX MDX STX STX MCX STX STX MDX tl A 1 1 I XMAX 1 XMIN E 1 1 YMAX 1 VHfM 1 2 1 O L TI S MARK LOUP C BNZ LOOP 8 MGX L-j STC C0 S 05C STX f! AQUI . L 0 5'3.0 LD L i. O LUGAR I XMAX LUGAR AQUI,- i 1 XMAX TESTE 1 O LUGAR XMIN I S STX T E S T E MGX t D 5 7U LD LU f 1 B S ~t LUGAR TESTE,+ 1 XMXN 1 1 X. O LUGAR YWAX LUGAR I S BSC DAQUI SC 9 *******************94****$<***********3k****W 'INIC * I* LD F S7X 8 YMAX CORPO 1 O LUGAR I YMiN t LüGAG CORPO,+ 1 YMTk S ESC DAQUI*- t STX 8 Li3 Sf13 CORPO 4e 0003 09134 00U5 0 ~ O O O O~ OOU? O 'OCfDIS 01 OODA ouõâ 6 VAGA AREA LUGAR LUGAY VAGAY LU O Ft *e CC CC CDX LC O LDX OVDF O STO LD a1 LDX OUE2 Q 00E3 01 00E5 O O O E b 01 00E8 0 STX LUX STX LOX O OOEA O QUE9 0 3 E B 01 0íiED O O O E E ft OOEF 01 00F1 0 PDX VT-iLTX C D * 0 O I1 XMIQ 1 O STO 0 OODC 01 OODE O OOEO *-* CÇ GL LUGAR 1 1 XWAX 1 O VAGA I 1 YBfN I LUGAY 11 YMAX 1 11 1 1 VAG4Y A 1 O LUGAR S 82 ti3 MAKCX 1 Q VAGA VQLTY 1 2 S BqZ F A R C X LC OOFS U SI+A L 00F3 01 DOF5 O f3&Z LD NUVOX #L GR STG OOFb COF8 0 OOF9 O OOFA O 0104 O 0105 O 0106 01. Q108 0 0 1 0 9 01 0103 O 010C 0 010D O 0 1 0 E 01 0210 0 S az 1 Z I S BMZ K A R C Y Li3 SRA LUGAY EIARCY f 1 L0 L VAGBY MOVOX 1 2 2 BhZ ti3 R Z L LC S 8Z MtX * Ei NDVOX Z QUATR L 2 STO &OVQX M G X STX 0111 81 0113 0 O114 O NDVOX f3 O 0 1 u 0 01 0102 01 QUATR 1 2 VQFTY L3 OúFB 01 OOFD 01 OQFF 1 2 L 1 3 f AREA L MAR# AREA ESTRU Z 1 VOCTX , - PROCEDIMENTO 3 LD S I 1. eiq t PPT PEMPT Li3 SI0 PPT 3.1 L 8 MDX LUUPI. >x INICIALIZACAO DO PONTG L I G A D O ADII Lu LD ST13 STX * PAL LISEG TEWP~ 11 TEMP3 t 1 L XPL 1 2 L YPL L3 PAL VERIFICACAO DOS VETORES EW S E N T I D O S CONVENIEhTES LCt t SECT BNZ T i LC L XPL S BSC e EGR 8&Z LC S RSC 0 LD €98 BPGZ Li3 L t XP OK, To0 L L t L L L L UK?+ TI1 SECT DOIS T3 XPL XP B LEI S BSC t L L 1 i t LD L A STO L ESC I BSC - UM T2 Y PL YP L S * * 1 s-ra L LOX LU STO * LISEG ADli 1. 2 8 * * tCfG YP UK*+ T22 YPL YP f 331 +L SECT TPRA0 *+I #c- * TESTES P A R A O P R I M E I R O SETOR PRSO TO0 BSf L LC BNZ L LDX PCX I P CISEG I I CALAL PFIM PRSQZ SfX LC LltISEG L O 5Tfl 1. RNI PRSO1 LDX LI: A 0 11 I f PALMX ZERO PFXM 1 2 STff Fí: S MARC YHAX i BNZ MCH LD S ADlZ SSECftil L 1 1 XWAX f AI312 BkZ ,4012 ' 4041 * SECTtl PALMX NUM LD L STIJ STO LCX Mi3X S'PX LU EIZ PONTO I 7ABP 11 TARP I I L 1 TPBP L PFTF BSC i t AI34 CALAL D E F I N I C A O DE AREAS E CONSTANTES :g OCO0 ZERO OC 0000 04A8 0167 0C64 0002 O006 0000 OCO0 PFIEI DC oooa OCOO O000 OU00 0000 0000 0000 Ori00 O000 f)OOO OCO0 0000 0510 9472 0531 O587 05EB OCOO 0000 0000 TABP 0t PONTA DC TA8PC B S S DOIS CC SEIS CC PONTO DC TEFlP3 CC XYP DE XP C€ YP OC XPL DF: YPt QC PAL CC AtFA CI; R E S T Q C.1; PALMX DC ALFWX OC RESWX CC SECT C C TPRAD CC TPII DÇ O *- * TA0PC PT 100 2 6 * O *-* * *- * *-* *-* t-* *-* *-* I- * * *->tr *-* $- $- *c- ' TPR PKSO CC E6 PRS1 D r3 TEMPLt 13C RESTA Ct K S T A H DE PR53 PRSS 4- O 0 * , 8524 O 0000 00587 6 5 2 5 O CCIFE 00588 0 5 2 6 01 4C180583 0 0 5 8 9 0 5 2 8 Ob C 4 0 0 0 5 1 6 U0580 0 5 2 A O1 4C28054C 00591 O52C O COfE 00592 O 5 S D Oi 4C200534 0 0 5 9 3 052F O COE9 08594. (3530 01 4Cf00560 OU595 O 5 3 2 01 4C800608 00536 0534 O1 F400035F O0597 O536 O1 4LS0053E 00598 0538 UL C40005l.9 0059g 0 5 3 A O1 4Ef00560 0O6OU 0 5 3 C 01 4CB0060A 00601 853E 0 1 C400051B 00602 FCCB 01t60r 05443 O 0 5 4 1 01 4C20054-7 O0504 0543 0 . C005 00805 0544 81 4C10056D 00606 813607 0546 O 7 0 3 C 054'7 O C O U 1 006063 OS48 01 4C10C56U 00609 0544 01 4C00060A 0 0 6 1 0 00611 00612 00613 00614 054C 0 COCE 054U 01 4L200554 0 0 6 1 5 00616 054F 0 COC9 0 5 5 0 81 4C28056D 00617 0552 01 4C800bOA 0061ti 0 5 5 4 0 1 F400035F 0 0 6 1 9 0 5 5 6 01 4C20055D 0 0 6 2 0 0558 01 C4000519 90621 O 5 5 A 01 4C28056D 0 0 6 2 2 05SC O 7U26 OU623 055D 0 1 C40005l.B 08624 0 5 5 F U FUAC 00625 O 5 6 0 01 4 C Z 0 0 5 6 8 00626 0 5 6 2 01 C4000519 00627 0564 01 4C280560 0 0 6 2 8 0 5 6 6 01 4C800óOA 00629 0 5 6 8 01 C4U00513 0 0 6 3 0 056A 0 1 4L28056D 00631 7015 00632 056C O 0560 O 05bE O 056F 01 O 5 7 1 01 COA8 B0Xb BC PARC 00584 * 4 * 00585 00586 Caso PULC O C E ALFA POSITIVO LD BL t Li3 h RARC BN tD BNZ L0 BJC B &I ECR BhL t D ESC BSC LD ECR h13 L i L L L 1 L ERZ LO tu4 * * BSC 3 L0 BSC L ff I t TROCA ALFA NOVTE SECT h1 ALFNX CALC9CAFAL UEiI 83 ALFWX CALCTCALAL SECT DOIS N4 ALFHX CALCpTROCA ALFMX ÇAtCtCALAL C A S O D a ALFA N E G A P I V B #< NCIYIE tD SECT 3hZ N5 LB B I ALFMX CALC CALAL ECR L UM LO L Bfi! F Ltl L Bk N5 a6 mz fV6 DOIS Nf O EOR €!fiz LI) L €3 r.4 NZ0 B I L0 L B& , ALFMX CALC TROCA SECT 3 ALFMX CALC CALAL ALFMX CALC TROCA 00633 * 08634 00635 00636 0063 7 4~ ESCOLHA 80 AhGULO >k CALC Lf3 kLFA S ALFPIIX 4C100573 00638 4 C 8 0 0 6 0 A a0633 0&N 3 I *+% CALbt CONVENIEQTE BbZ TROCA LE S RESTO €32 CALC1 BSC B RESMX L I RESTA RSTAM C A L G f LD S * * TROCA*CALWL esc L E I MUDANCA DE TROCA,CALAL R E F E R E N C I A S 80 BLFA MBYIPO sf: ALFA TRQCA L 0 SI0 AtFlurX RESTC RESlwX P AL tD STO LD SI0 PALfiX RESTA LC * * g: STQ L2 STO L MARC 8SC f CALAL L RSTAM UN T E S T E S PARA O SEGUNDO SETOR PRSí BbI LC BNL T11 LUX MOX STX LD SFO L L S'fO LC 5 8hZ MDM I Q L S B , NARC ADll 11 PAtMX L ZERO L PFíM 1 L I L L XMAX A012 SECTy1 1 2 LC BNZ NCM PFIPI PRS02 IlLlSEG 1 1 t l LISEG 8RZ P K S Q S LCX LG CALAL I t L L YMIN AD12 SECT91 ADL2 JÉ * TESTES P A R A O TERCEIRO SETOR $6 PRS2 BSI T22 L0 BNZ LBX FIux CALAF L PFIM PRSb3 T i LISEG 1 1 O5BF 05C1 05CS 05C4 05C6 05C8 05CA 05CC OSCD 05Cf 0501 0503 05D4 05D6 05U8 O5DA 05DC O5Df 05EO 05E1 05E2 O5E4 05E5 05E6 05E7 05E8 OTEA 05EB 05fC 05EE OSFO 05F2 05F3 05F5 Q5f6 05F8 .05fA UTFC 05FE 0500 0601 0603 0505 0607 O609 ObOA ObOB .06OD 060F 0612 O 1 6D00035C 00696 O C100 0069 1 0 1 D4000534 00698 SfX L0 STU EINZ O1 4Ç200432 0 0 6 9 9 f P R S 0 3 LDX L0 0 1 65800518 02 C40Q04A4 0 1 D40004A5 0 C102 01 9480009k O L 4C200494 01 74010518 O C101 01 94800099 C 1 4CZO0494 0 1 C4000515 0 1 D4800486 01 6 5 0 0 0 4 A 8 0 1 bD00060A O CEO1 U DO08 0 1 6580U4A6 0 CQOS O DlOf O 1810 O0700 00701 00702 00703 00704 00703 00106 O070 7 00708 00709 U07l.U 0031L 00712 OU713 00714 OU715 00716 00727 00718 00719 O i3102 08720 DL 4LO006B0 0 0 7 2 1 O 0000 00722 00723 00724 00725 O 4QIE 00726 0 1 C40004AS 00727 0 1 4C2005FA 00728 O1 65S0035L OU729 O 7101 00730 01 hCQ0035C 0 0 7 3 1 O C100 00732 Q D4000524 I 00733 01 +L200432 08734 0 1 65800518 0 0 7 3 5 01 C40004A4 04736 01 D40004A5 00737 O C101 00738 0 1 94800093 00739 O 1 4LS00494 00740 O 1 C4000518 0 0 7 4 1 01 D 4 8 0 0 4 A S 0 0 7 4 2 O 7002 00743 007'44 00745 00746 O 000G O074 7 01 C4000513 00748 03. 9 4 0 0 0 5 1 1 00749 C31 4tlBCS72 00758 0% D40U0521 0 0 7 5 1 STU Li. LISEG i o I MARC ADíf I 1 PALIVtX L ZERG C LD S BNL PTDM L0 S BNZ tC 57'0 SATD IQX STX 1l! STO LCX I C MINX * g: * A012 1 1 I L t XMIN A012 PAL i TABP t l TABPC L 1 TAPC 1 1 M I NX 1 1 TABP MiNX 1. L 16 1 2 L PRUXO *-# T E S T E S P A R A O QUARTO SETQR PKS3 133 CAL AL €!SI L BNZ LOX PRS04 I 1 LISEG HCX 13. t f CISEG 1 O C I 1 PALMX ZERO t PFIM 1 L 3NZ I C Lt' L SfO 0 I S MARC ,4011 L LT; ' PFIM Ltj STX LC STEi 8&Z PRS04 LUX LI? SfO * * * YRIN e s€cr,r LD STO SR A SfO B DC PFIM 3.2 XNIN AO12 PALMX TAEP SAIO CALCULO DO COEFICIENTE ANGULAR CALAL *-* DC LC S BL SfQ L XPt XP L XZERO TEMP4 L C4000514 0 0 7 5 2 94000512 0 0 7 5 3 4C100634 0 0 7 5 4 1890 00755 A C O C 0 5 2 1 00755 D4000516 0 0 7 5 7 11390 SKT C SfB SLT 0075d A012 00759 1810 CiQ76r3. & C 0 0 0 5 2 1 00161 1001 00762 1801 O0763 04000517 0 0 7 6 4 10 9 0 00765 A009 00766 1010 00747 AC000521 0 0 7 5 8 1001 00 769 1801 00770 D400C522 0 0 7 7 1 4 C O O C 5 2 5 00772 OQOA 00773 FFÇF 00774 OU775 W775 00777 C480035C 0 0 7 7 8 040Q050F 0 8 7 7 9 6580050F 00780 áu000485 00781 C400051R 00782 4 C 2 0 0 6 4 5 OU783 ia10 00784 040004A5 0 0 7 8 5 46030478 00786 t40005P3 0 0 7 8 7 F400035F 00788 4C20065C 00789 C 4 0 0 0 5 1 3 00790 94UOO5l l 00791 4C30U656 00992 f 810 00793 D40004k5 0 0 7 9 4 46000597 0 0 7 9 5 C 4 0 0 0 5 2 5 00796 04000518 00797 4L8006DA 00798 C400051B F400050C 4C200467 li310 D40004A5 Lri S 0Z 00799 00500 00801 0C802 U0803 4LOQU5£lC 00804 C4000513 00805 9 4 0 0 0 5 1 1 00806 4 Ç 2 8 0 5 5 6 00807 i YZERO L h v SRA C SiA TE&P4 1 1 L RESTO 16 DEZ1 16 P Sj7A O SLA SRA L Suo t 1 RESTA, L PULO e DEZ1 MEG1. 16 T'EHP4 ALFA 16 DEZ1 16 L SR4 STO SiT YPL YP TEWP4 1 CC DC 10 -1 >! * * C A S O Ç A S G R D E M A D A S CUJA Y Z E R C LD I t 11 kl TEMP3 TEVP3 PFIYt hD F SECT BPiZ W A ST0 B YPROC L D ECR 0842 LD 5 flp SRA SfO Q YPR LISEG STO LLX STX LD STQ r3 PRBCY L 0 EGK BYZ SRA STO B PRY LC S B fu YPROC L L 16 PFIP t t TO0 SECT UM PKCCY t XPL t . XP t F t C f L L x:ts 16 PFIV T11 PAL PALMX CALAt SECT DCIS PRY L 16 PFI* t t L XPL XP T22 YPR D f F E R E N C A E ZFRB * CASO GAS =+* XZEKO t B ABCISSAS CUJA D T F E R E N C A E ZERO LlSEG PFIM I STW SfO LUX F i3 UMZ L t TEFP3 f l TEMP3 F SECT LC. L YPL S L YP *+5 PROC RO 16 PFIM S&A PRO PROC e SI0 0 L L tB i STO t E! 1 LG E6R F L TOO PAL PALBX CALAL SfCf UH PRQC2 16 0RL SI1A 5TO B PROC2 L U L L PFIM T1Z SECT DOIS PROC4 YPL YP PRO 15 PFIV TS2 16 PFifi 733 L ECR BidZ L6f L S 8h L L SK A STC 0 PROL4 SKA STU B P R F X Q LD 8L SfCI LGX i;i STO LC L L L L I IAPC LIGA AA I1 A A 1 O A l 1 1 A2 SI0 * * * PKOX LCI STQ LDX 1 2 A3 LI n V E R I Z C A C A Q DOS PONTOS DUPtICADOS+DO C a N T ORNC! L€! S BkZ Lt: 1 O A l PRQX I 1 1 S A2 ERZ PROXI f 2 L0 S B Z L LC CR A3 PKQXI 3 TRIN4 1 3 STU ji: * * F I M DA ThBEhA T E S T E PARA 1 4 Z O F R O X I fr"lCX Cti S L MARK Lu PKOX TAPC A STQ UN1 TAPC 0 PRPSXO BitiZ TABPC %k * * UNI B F F I N I C A Q DE AREAS E COMSTAMTES CÇ T R f N 4 DF TAPC DC A1 O f; A2 A3 hA CL CC CC I 34 t-íi: *-8 *- * *-.* $- 8 - PROCEDIMENTO - --- 4 - 00900 00901. 00902 00903 00904 00905 U0906 I 00C307 D6DF 01 65800897 00908 0 6 E l O 7101 009OCf 06F2 Ul bD0008ÇA 00910 I ,06E4 O 7101 00311 O b f 5 01 60000e98 00912 00913 00914 1 00915 U b E 7 OL C4800tS93 00916 06E9 01 04000dfi2 00917 O ~ E R01 C ~ E ~ M 0~0 9Aí a O S E D i31 D40008$6 00913 0 6 E F 01 €4800898 00920 O ú F 1 01 D4000R35 0 0 9 2 1 0áF3 01 65600882 00922 06F5 O 06F6 O CIO1 00923 0028 30924 06F7 O 06fS O CIOS DO27 (10325 U s F 9 O 1 h580CR06 06FB O C 1 0 1 ObFC O 4022 06FD 01 4C18070A O 0700 0 0 7 0 1 01 0703 OL 0705 0 0106 O 0707 01 0709 0 070A 01 Obf-F 00926 00927 00928 00929 00930 CL02 130931 9U1F 00932 4Ç200721 00933 h 5 b 0 0 8 9 S 00934 C102 00935 9019 0 U C 3 3h 4CL80713 00937 7017 00938 65500095 00939 070Ç O C L O 1 009451 O C O D O 9011 00941 070E 01 4Çi.80713 00942 0720 O 1 65800896 00943 071 2 O 7 0 E C 00944 00945 00946 00947 0713 O1 C4000898 00948 0 7 1 5 O 8008 00949 0 7 1 6 OP 04000898 O C 9 5 0 0 7 1 8 81 C+OOC890 00951 I RES RET LG L A STCI C HES UM S ' B.iZ L LU LO A STO LL: S BhZ 10X HEX LC e RES L t I UN KES 1 2 RES RET 1 1 PSEG 1. 1 1 O 8 h *+5 SRA STQ F 16 CHAV 0 L SI0 L STO ti: 8 LD L UN L I CWBV t PPCZ BR I P4 CHAV LZSG1 BZ LGX SS'X CHAV LIGSi 0 L I S G f Li2 FRENT 1 PSEG f6 STX SgA RET RES a i I f PSEG L 1 PPC3 SKlt STO L 16 CHAV 0 L IPPC3 It: 9 * D f F I N f C A f 3 D E 4ilEAS E C U & S l A N T E S C H A V 1 CL REG CC R€ DC P A R C 1 DC P S E G CC P A R C A CC *-* *-* T R E S 1 C@ 3 2 16 DOIS1 CC F E Z E ó CIC $- $ O O o *- * * a-$ * TREC REG1 DC DC gt- REG2 REG3 bC DC %- PVISI * uc *--$c PARCACAU DQS MOS TPVISLCX ti A STX 1 REG1 VIYIVEIS WAC O 0 7 A O 0% 07AF C 0 7 8 0 02 0752 O OT83 O 69FO 65U0079D IdlO DCFO 07R4 O C 1 0 0 0 7 8 5 03. 94800796 07R7 U 1 4 C 2 0 0 8 1 B 0739 t3 C O E S 0 7 R A 01 84000899 O ~ B CO D O D F 0 3 8 0 O C101 07'RE O f 948QG79C O l C O 01 4 C Z C O 8 1 B 07C2 O &OU9 0 7 C 3 01, 840Õ0899 0 3 ~ 5O ~ 0 ~ U 7 C 6 O CIO2 07C7 01 9 4 8 0 0 7 9 6 07C9 01 i C S 0 0 8 L B 07CB OE C 4 8 0 0 8 9 A 0 7 C D O DOCE 07CE O U7CF D7DO 07131 0702 07D4 07D5 07D7 t17D9 0705 0II)C 0700 ., " 01 0 5 4 C 4 8 0 0 8 9 A 01965 DOEC 01066 71FC O 69136 O C005 O 9UD3 OL 4 C 2 8 0 8 2 6 0 C100 0 1 94000098 O 1 4CX8083D 0 1 C480089C O DUCS O C100 01 848007A7 07DF 01 4 C 2 0 0 8 2 B 07El O C O C S 07E2 01 84000899 07E4 O D O C 2 07FS O CIO1 07E6 01 948007A7 O7E8 01 4CSCOb2R 07EA O C 0 8 C O ~ E Boa s 4 o o o s w O ? E D O DO89 07EE O C 1 0 2 0 7 E F 01 94B007A7 0 7 F 1 O 1 4C200828 07F3 01 C480089C 07F5 O D O U 1 07E6 O 07F7 01 07f9 O 07FA 01 COB't 4C180807 COAA 4Ç200836 07FC O 07FD O 7104 C103 01067 O f Oáu 01069 51070 Of071 01072 '31073 01074 0'107s O 1076 01071 01078 0287'3 01080 01081 6 STX I LDX I 1 RE 16 TKEC srn SCiA S f ll REG 1 O LU S BFIL LS A S f0 Lt7 S BNZ LD A sro I L ilEG I ' L S I B%il LU I O1100 01101 01 102 01 103 01104 01105 Qll.06 STU MGX SiX LD S S 8&Z oiro7 LG A 01 1 0 s 01109 LC 01110 O f llX S BQZ O f L12 CO. STO LCi Bi 01113 01114 01,115 Olfló ULP17 OlIlC3 O1 h i9 C MARK I I NCR PPC3 REG^ L0 LD 5x0 ti3 S&Z MDX PPC1 REG 1 -4 IREG2 REG2 TP2 BZ S B&Z Llt A S'TU REG TP 1 L O LC sra REG UN REG REG1 B #ti LLi REG TP1 1 2 LD 01083 01084 01085 01086 01081 OlO8Í3 01089 01090 01091 01092 01093 01094 01095 01096 01037 01098 S REG TP1 REG UR 1 1 01082 01099 1 R€ PPC1 LB I 1 O REG3 TP3 REG3 C- UQ: REG3 1 1 f REG3 TP3 REG3 UN REG3 f 2 I REG3 L TP3 5 PPC3 REG3 PVISI NADVE TREC TPINC 1 4 OK L STQ FDX WAfs * * TRES 1 3 1 -4 LU GH 1 3 Si0 B 1 3 TP3 DEZEá GC /40 O PONTO LIGADO E ' IWVISIVEL .;e &AO\JE TREC NAGV 1 4 1.3 LI: 8%Z MflX L0 1 1 SHA SCA STD FIDX 1 3 1 -4 1 3 LC CK WAR 1 -3 TP2 1 3 QUAR 1. s-ro B &AOY Li2 QR SAA SLA STU TPeffC SLA STO MDX TP1 1 1 3 15 TREC 1 4 1 O LD S f3 1 * * * 0826 0827 OU28 ORZA O L0 I STO L B t a UN iv,ax Lt;: STO a O LD R1 L L 0 8 2 B O1 0ù20 O1 082F O 0830 O1 0832 01 0834 0 1 TP3 0836 Q 0 8 3 7 01 0 8 3 9 Of 083B 0 TPINC LC CR L Or( L 083C O MARK IMCR PPCl REG TP8+2 L I M I T E INFERIOR ULTRWFASSADO 3-132 O 01 L 1 4 E.CX LD STfi B STO 8 TKEC. T P ~ TREC TP2 f L t PPCl REG TPO 1 3 TRES DEZE6 1. 3 TPDEC PSEG UWI PSEG 16 PVISI PSEG TESTN PSEG LIGS1 IPPC3 t C S'IO tax LL; I PPC3 RES1 11 n 1. Ii STQ Xh13 LB 11. STO LU STO 1 2 tC ~si Xt3 YL3 t EjiARC1 B&Z CAL21 LU Lf Plf STf3 t H MBRCI CALCZ ir * PONTGS S U B R E 4 TESTN L U M RZ O MESMO S U P O R T E DE RETA FRENl Ur\i TESkll 5 STU N LE PPCI A S T €1 UM PPC 1 E F R E N T Lf; L BNZ TESTN FREH1 t O PPC1 PPC PPC2 PPC1 STO LD STC A ST13 te3 82 Stl;A STU STD B PRIEIT N L UM PPC2 f t PPCS t MAKC1 1 L HAKCA 3lJS 26 LINHA Ui22Y 01230 01231 0020 0000 ooof) O4AS OCO3 OG00 0000 OC80 000U 0000 OCO0 OU00 0000 OU00 0000 0000 0000 0000 QOOO 04A8 0000 0000 0000 OCO0 0000 0002 OCO0 0000 OCO0 O000 0000 0000 OCO0 OU00 0000 01232 01233 Of 2 3 4 01235 01236 01237 0123b O1239 01240 01242 01242 01243 01244 01245 01246 O1247 01248 01249 01250 * CEFIRICAG *-* T A B P 1 DC TABPC TKES Xtk 'XL YL XLL2 XL2 YL2 XLLL XLl YL1 XLL3 XL3 YL3 X02 CHAV PPC 01252 01253 01254 01255 01256 01253 01258 0 1259 X31 XYPC2 YYPC1 XYPC N UN 01260 01283 658008A4 0 1 2 8 4 DE AREAS E CONSTBhTES V I N T E CC CC1NTK DC XYPPC CC OL25i 01261 01262 0126.3 01264 C11265 01266 0000 01263 0000 01268 O000 01269 01270 65800893 01271 C100 01272 DUf9 01273 658008A3 01274 C100 01275 DOD7 01276 C1.01 01.277 DOU6 01278 C102 01239 0005 111280 64800898 03281 C100 01282 DOE€ * * CC CC CC C€ CC DC Of 120 *- * 3 -:;> **- * *--* * *-* * *-*< $ *c- er: $6- DC DC; DC $-<C CC GC DC Ck Dlf. DE: CC #C * *- iPI *=- * <c- O O TABPC O GC O O Q C(; DC O CI', CC Ct EE *-* *-* Y YRES X2 Y2 X3 Y3 KESL EC DC O O DC C f; O O DF O DC DC O .WESZ DE RES DC O O 9PC1 PPC2 PPC3 1 O 0 9 C A L C Z LGX tO STO LCX LD S T i3 LC SVO LU STO LDX tt3 STU LCX 1 1 PPC 1. O RfSl 11 R E S 1 I O XLt 1 1 XL 1 2 YL 1%PPC2 I O RESS. 1 2 RE52 ClOO DOCE 01285 0128b C101 01287 DOCO 01288 C102 01289 DOCC O i 290 6580C89A 0 1 2 9 1 CIO0 01292 D ' t 3 ~ 1' 01293 658008A3 01294 C1.00 01295 DOC 5 O1296 C 101 01,297 o OC 4 C102 noc 3 012138 91299 01 390 01301. 01302 01303 01394 01305 Lf3 STa 1 O XLF2 LD 1 1 STtl LD STO 1 2 LGX LC STO LfiX LfS §TO C0 STO L f3 - * STO %i E M FUNCAU DE 01307 C A L Z 1 L6 90C3 Q1303 S DOU6 01309 O131t.l STQ LU S M SLT C083 40BS DOCE COR7 9089 AQCR 1090 90CA 30C9 COBO 9CB2 AOA8 1090 01311 01312 01313 01314 01315 STU LC Ol.316 01317 013Lk3 01319 01320 01321 O f 32% 01323 01324 01325 01326 01327 01328 Y C F S STO LC S fu"l SLT S * * STO Ct' XLi M s XC3 St T DOC 3 013213 01330 XL 16 STO RESI. COA6 Oi.331 tD 90A8 AOCO 01332 s YL Yt2 01333 01334 01335 01336 01337 01338 0133-3 FiI RES1 SCT STQ 1. Ci S 16 KES STQ 10 RES1 S YLl 1090 BOCO COA0 90A2 DOR0 CU9E 90A3 01340 - C A 8 L C U L Q DA INTERSECAO DE P f P 3 E P O P 2 Cí3t 1 DQD2 Xtl f 2 4 * ,1090 YtS I 1 PPCL 1 O RESI. f l RES1 1 u XLL1 1 1 >$ €31306 COE9 90RB AOD3 , XL2 X t XL2 Y t Y - PKDJECAO SOBRE X Z 76 f4 SLT STQ L0 S RESL 16 RESZ XL1 XL3 RES1 15 H SLT S SfO Li; S H RfS R €S XL XC2 X t1 SlT STO LC s - M SLT A Si47 C STO * * RESL t YL1 Y 1-3 RESX L 16 RES L L 16 RES2 Y &AaLCULO L8 S STO i RES1 s STC! L KES.2 LD t L i XLL1 t RES1 XLL1 X31 POSI1 CALXS NEG1 I6 S'I'O REST1 CALCULO 005 X - igc i L L ta L S STO LC S L L ?4 I Y - Y ~ I~+ X L RESTI SLT STO X3X=((Y-Yf)tXf-X3)/ 16 L t C L - PlP3 YLL3 RESZ L L S SOBRE X Y XL1 : CALXS L G PREJECAO Y A STQ SFT STEI f3w R POSI1 F - X í l XL3 L L L i4 t L DOS X tO S * * 16 L XL XL2 RfSl Y XL RES2 XLL XLL2 KES2 - PRGJECAO S O B R E X Y POP2 It A STU StT STO t RES1 L XLL XO2 L 16 BN t3 POSI2 H t SLT STO CONTA L B S L L t3IiiN CALRO SKA STO L B L CALRP BL REST2 POS 1 2 CONTA NEGl lá RESTCI X31 X02 CALRl 16 PVISI TPVIS *+fj 570 L L i3 L PVISI TPVIS h t REST1 REST2 L[! 1rJ S BNN 8 URI CALRi+L! ÇALKO R E S T 3 DÇ R E S Jt'C~ *-* *- * *-* *-* DEZ 20 DC R E S T 2 CC REST1 Dê X02={ y - Y O 1 f XC-X2 1 I IY-Y2)1+XU, 098F O DO30 01482 01483 O990 O991 €3992 0993 O C100 O DO37 O C101 O 0'394 O 0995 O 0 9 9 6 r3 O997 0 0998 01 DO36 C102 DO35 SfO 03.481 01484 01485 01486 0148 1 * * COQRCEMACAS DO SfO 1O PX tC l. 1 8USC2 t C 01488 ST B 01489 L!? 01490 Si0 BSI L fl BZ EOR 01491 C036 02492 4C1808D3 01493 099A O FOZ8 01496 0998 O t 4C200965 01495 099U 01 KOOOA2F 01495 01497 O 1Lc98 O 1499 O99F O OrfUíf 0l500 09AO 01 6 S U O O U 0 0 0 1 5 0 1 0 4 4 2 O C100 01 502 0 9 4 3 0 9025 01503 0944 O 1 4C200YL30 0 1 5 0 4 0946 Q C101 01505 O1500 O387 Q 9022 0 9 A 8 O1 4C20098B 01507 01508 0 9 4 4 O C102 09AB O 301F 01509 4008 OQAC Of 4C200f3BB 01510 W A E 0 COlF 01511 0 9 4 F O1 4C1807P8 O l S L Z 0881 O C O l F 01513 09R2 01 4C2009BU 01514 0984 O C 1 0 3 01515 0305 O 1891 015'LtS '0986 O lt101. 01517 'Q9B7 O 0103 01518 ' ~ 1 7 ~00 C 1 0 3 01519 0989 O E813 015213 09RA O 0103 01521 O Y B B O 7104 O 152% 0 9 B C O C100 01523 0 9 R O 81 9 4 0 0 0 0 9 8 01424 ' 0 9 8 ~01 4C2009A2 01525 0 9 C l 01 4C800a9F 01526 HASC ,;i PY 2 PZ BUSC5 FASE BLfSC3 RWZ * * L $3 *- f t3USC"jCC LCX SUSCS L U s Uk3 BUS BilS2 C O N V E N I E M T E DQS P O N T O S MARCACAU 4 L1 A E O PX BNZ S BUSC6 1 1 PY B&Z tD BUSCb 1 2 CD S PZ BNZ BUSC6 FASE LD BZ BUSC? L0 PUNT!! BNZ BUSC7 LE 1 3 n ~ r t 1 SLA SfO 1 1 3 1 3 8USt7 tO HASC OR 1. 3 1 4 STEl S U S C b MOX LO S ElRZ 0 * * PUNTa B A S E 1O L MARK I RUSC8 BUSC5 DEFINICAO DE A R E A S E C G N S T A N T E S UM3 1 D E Z 8 DC P O N P T CIC 2 18 PT CC DOIS2 DC SAVPT OC A R E A T Of; PX UC *+*c $-* I-* , 03CA O 0 9 Ç B 13 09CC O Q9CD 09CE O3CF 09DO 09D1 8902 0000 01537 OCO0 02538 OOUO 01539 0 0000 01540 Q OCO0 01541 O OOOC O1542 O 0 ~ 8 2 01543 O OCO0 O1544 8 OCOC 01545 01546 01547 O I.5 4 8 01 558009C7 U 1 5 4 9 0303 09135 O 0906 U 0907 O 09D8 O 0909 0 0 9 D A 01 090C Q CUED DCF7 01550 01551 01 5 5 2 01553 DUF5 01554 658009CF 0 1 5 5 5 C100 0155+5 09CD O 9 Q E B 01557 0 9 D E 0 1 4C.200825 0 1 5 5 8 0 9 E O rit Cllifl 01553 '09~1 t" 90E8 UlEitjtl 09E2 01 4 C 2 0 0 A 2 5 01561 09E4 O C 1 0 2 01562 09E5 O 90E5 (31563 0 9 E 6 01 4C200425 0 1 5 6 4 03fR 01 6 5 8 0 0 9 D S 0 1 5 6 5 0 9 E A 0 7101 01566 03EB O C i o 0 . 01567 0 9 E C O DODR 0156t3 Q 9 E D 01 C 4 8 0 0 9 C 8 0 1 5 6 9 D Y E F O D0DF 01570 O J F O UL 6 5 8 0 0 q C F 0 1 5 7 1 09FS 0 C103 01.572 09F3 0 1 0 0 A 01573 OYF4 C) 1dOF 01574 ,09F5 r31 4C180AOE 01575 09F7 O C O D 9 01576 09F8 01 4C200A2F 0 1 5 7 7 U ~ F AO 7 1 ~ 0~1 5 7 8 1 0 9 ~ O ~ CLOC 01579 1 0 9 ~ B ~ 90Ct 01580 1 0 9 ~ 001 4C200A08 01581 IOYFF O c101 01582 OAOO O 9OC9 01583 69FA C100 * **-* *-* ** PY C f, PZ Cí: S A L V B 13L M A S C CC FASE &- lpc CC $ A R E A X 13C &- O I T E N GC PONTV DC SAV GC /e2 e-* *-* t * BUSCA DO PUNTO BASE EM P T . B U S C 3 LCX Lt; STO RUSO SfX LD STO LOX LB 11 SAYPT UV3 FASE P SAV 1 O AREA~ f l AREAX 3. O PX s DNZ BCIS1 f 5. PY RUS 1 1 2 L@ S BRF LC PZ S 8hZ LCX MDX Li3 AUS3 STQ LC STU LGX LC stn $MA OZ LU i f SAV 1 1 1 O AREAT AREAT AREAX I 1 AREAX f 1 3 10 1'i 8lJS10 S RPIZ PWTY ~ U S S 5 -4 1. O PX BUS9 LU 1 1 a w MOX tf; S PY ' S ENZ 8 MGX EfUSI-2 C 2 SI3 A SLA RUS9 BUf l PZ BWSB BUS2 1 4 t 3 1 I OAúC O Df03 UAOD 7021 n OAOE O OAOF O OA10 O D A 1 1 01 OA13 O C103 Ii130R 01593 0159/101595 C088 01603 4Cl.80820 016Q-4 C 4 0 0 0 7 A 3 01605 DOAF 01606 4L000890 01607 C40OOdU6 0 1 6 0 8 DUAA 01609 4Ç000990 O1619 65800902 O P B Z X '1102 01612 CXOO 01613 94000098 03.614 4C200907 01615 0820 01 4C000966 01616 04SF 01 6 5 8 0 0 9 C 8 0 7 6 1 7 9A31 O 7 1 0 1 02618 0432 5 6995 01619 0333 O CLOU 01620 DA34 01 4 C 1 8 0 3 6 6 01621 OA3ó O 7 0 8 6 01622 f 3 IIU510 LD 01 595 1SOF 01597 4CZOOAZf 01598 C103 0.1599 OAl4 U 1009 01600 OA15 O 1130F Ol.601. 0 4 1 6 01-4C20042F 01602 OA1B O O A 1 9 01 O A l B 01 Ok1D O O A I E 01 O A 2 0 O1 0422 O 0 A S 3 01 0 A 2 5 01 08127 0 0878 O 0 8 2 9 O1 O A 2 B 01 t. 3 8US2 SfO O SLA Lf S8.4 BhZ BUS2 La SLA S&A B&Z 15 ,2 3 8 1 2 5 BUS2 LD PONTV BZ L0 STO 8 RUSLL LC BUSP L L DEZE6 nasc BUSCS QUAR PSASC STO 8 t LGX MDX LC f 1 SAV 1 2 1 O S BhL L S BUS2 8USll L LCX MOX STX L2 8Z 13 BUSC2 MAKK BUSO i, BUO; i1 AREAT 1 1 1. A R E A T 1 O L BUS BUS3 - PROCEDIMENTO 6 01628 02529 0A38 OA3A OA3C OA3E DA40 OA42 OA44 0446 OA47 OA49 0848 1 OA4B 1 OA4C 1 DQ4D 01 OA4F 06950 OA5l OA52 QA54 OA56 DEFINICAQ DE A R E . 4 5 E CDNSTAHTES 01630 00 4GOOOUtil 01631 00 4 0 0 0 0 0 8 1 01632 00 4COOOOBl 02633 00 400Q0081 01634 00 000C0000 01635 00 OC000000 01636 00 00000000 01637 0 0001 01638 30 220C14C6 0 1 6 3 3 1 OU38 01640 O i) O O1 01 O 0.457 O DA58 O OA59 O OA5A O OA5B 2 0 OA5C 2 0 01641 UA3C 01642 083E 01643 65000000 01644 C103 01645 100E tt1646 IbOE 0 164'7 94000884 01648 4 C 1 8 0 A 5 9 01649 7017 01650 01651 01652 01653 0000 O 1654+ 0000 0165'5 7101 01656 CLOC 01657 0 6 4 0 6 0 6 3 0165H 068A3580 01659 DEC DEC CEC DEC UEC DEC CEC ac CAtL C& OA3A DENG * LP A L0 SLA SKA S 1 3 14 14 TRES 1 PLQTE PC I HA BZ B PENA A B A I X A D A C G N C I C A O DE E DC E2 CC *-# *-$ 2 1 P L 0 7 E MOX LG f O L1BF LIBF i;;;a i;:; 01668 0 1661 0 16 6 2 iOAbO 2 0 064136063 01663 O A 6 L 20 0 6 8 8 3 5 8 0 0 1 6 6 4 ' O A h 2 1 OA44 01665 0 8 6 3 01 C400050C 01666 O A 6 5 O OODA 31667 0866 3 0 Oh5035A3 O1668 O A 6 8 3. OA40 01669 OA69 1 QA42 01670 O A 6 A 1 OA44 01671 O A h B O ?O1 3 01672 01673 01674 01675 O A h C 41 0000 01675 OA6D O 0000 01677 D2 CC PRQGT t D X FLOAT FSTQ CL B 1 1 1 O PCX ta C1 BF L I BF FLOAT FSTQ OC FG * ** E1 E3 i C DOIS STO A4 C#LL FPFOT Cf: CC CL' A4 E R C , CtíNTf C G N D I C A O DE PENA LEVAhTADA CC *-iPc DC $->Ec n OAhE 7101 01678 OAóF O CIO0 01679 O A 7 0 20 0 ú 4 D h U 6 3 O1680 O A 7 2 20 06843580 OA72 1 O A 4 2 O A 7 3 O 7102 0 ù 7 4 O C100 OA75 20 06400083 0476 20 068A3580 UA77 1 O844 OA78 O COCD O A 7 9 O DOC6 O A 7 A 30 0 6 5 0 3 5 A 3 QA7C f O A 4 0 0470 1 OA42 OA7E f OA4*r O A 7 F O 7102 , O A S O O C100 OsrtSí 0.1 94000098 O A 8 3 01 4Cl80A8ó OAB5 O ?BC9 0886 Q 6038 0,488 009E 1 1 1 O PCfEdMCX LC FLDAT FSTD ÇIBF 01581 01682 01683 LIAF CC WCX 01684 L0 LIBF O1685 i3 I. 1 I O FLOAT FSTO 01687 LIBF CC C 01688 LC UEII2 01689 01690 SI-0 CALC 01691 CC A4 FPLOT A4 01692 CC R 01693 CC C í 2 01686 01694 COWf I M C X CCi S 01695 01696 01697 E32 03.698 01693 01700 FIM2 B EXIT ENO 1 O i, MARK Ff P2 OENG IMIC APÊNDICE 2 EXEMPLOS DE FIGURAS TRABALHADAS POR CONV E DESENHADAS PELO PLOTTER BIBLIOGRAFIA [i] I . E . S u t h e r l a n d , "SKETCHPAD: A man-machine g r a p h i c a l communication system", M . I . T . Lincoln Lab., Cambridge, Mass., Fech. Rep-. 296, may 1965. ( v e r s ã o resumida em 1963: S p r i g s J o i n t Computer Conf., AFIPS c o n f . Proc. Baltimore,Md.: S p a r t a n , 1963, p. 329.) 12) E .L. J a c k s , "A l a b o r a t o r y f o r t h e s t u d y o f g r a p h i c a l man - machine communication", na F a l l J o i n t Computer c o n f . , Conf. P r o c . B a l t i m o r e , Md.: [3] Richard A. Guedj, " Spartan-1964, p. AFIPS 343. The Challenge of Computer G r a f i c s i n Continen- t a l Western Europeu - Proceedings o£ t h e I E E E , a p r i l , 1974. [4] R. Williams, "A g e n e r a l purpose g r a p h i c a l language", Graphic Languages, F. Nake and A. R o s e n f i l d , Eds. Amsterdam, The N e t h e r l a n d s : North-HolLand, [5] H.E.Kulsrud, "A general-purpose 1972. g r a p h i c language", Commun. A s s . Compt. Mach, v o l . 11, n? 4 , 1968. [6] M. D . Rapkin and C .M.Abu - Gheida, "Stand alone/remote g r a p h i c systemT1,i n F a l l J o i n t Comput. Conf., AFIPS Conf. P r o c . , v o l . 33. Montvale, N . J . : pp. 731-746 AFIPS P r e s s , 1968 [7] p. A. Morrison, "Graphic Language Translation with a language independent processar", in 1967 Fall Joint Computer Conf., AFIES Conf. Proc., Washington D.C.: Thompson. [8) P. D. Rovner and D.A.Henderson, "On the implementation of Ambit/g: A graphical programming language", in Proc. 1969 int Joint Conf. Artificial Intelligence, 1969. [9] William M. Newmiian & Robert F. Sproull, "An approach to Graphics System Design" - Proceeding of the IEEE, april, 1974. Philippe P. Loutrel, "A solucion to the hidden-line problem for computer-down poliedra" - IEEE Transactions on Computers, vol. C-19. n9 3, march, 1970. 1 D. Knuth, "Fundamental Algorithms", v1 [12] N . . Y . Graham, "Perspective drawing of surfacee with hidden-line elimination" - The Bell System Techinal Journal, v01 51, no 4, april, 1972. [13] Yutaka Matsushita, "Hidden-lines elimination for a rotating object" - Communications of the ACM, april, 1972, vol.15,no 4. 1141 J . ~ n c a r n a ç ã oand W. G i l o i , "PRADIS - An system f o r 3-D-display", ference, 1972. advanced programrning S p r i n g J o i n t Cornputer Con-