Esta página foi organizada por: José Antonio Luján Minchola
[Vanio F. de Melo, José A. L. Minchola e Mercedes G. Marques] [Harlen C. Batagelo] [Jorge Kawamura e Paulo G. Seifer] [Luiz F. S. Wetzel]
Introdução
O objetivo desta página é organizar os trabalhos entregues pelos alunos da disciplina IA369J, correspondentes as especificações das tarefas de interação de um Editor Gráfico 2D usando PPS.
Uma Tarefa de Interação é o conjunto de ações para a entrada de uma informação (dados válidos semanticamente) no contexto de um aplicativo. Para especificar as tarefas de interação existem muitos modelos de diálogo: Modelos de sintaxe (exemplo: BNF), Modelos visuais (exemplo: máquina de estados) e Propositional Productions Systems (PPS).
Um PPS consiste de uma definição de espaço de estado e um conjunto de regras. Um espaço de estado é caracterizado por um conjunto de condições parecidos aos estados e entradas numa máquina de estados, as condições são agrupadas em campos (Fields). Uma regra consiste de um lado esquerdo chamado critério e um lado direito chamado consequência.
Os trabalhos mostrados nesta página, usam o modelo PPS que reunê muitas vantagens do modelo de máquina de estados (visual) e os modelos de sintaxe.
Lista de exercícios:
6a Lista de Exercícios
Grupo 1: Vanio Fragoso de Melo
José Antonio Luján MincholaEspecificando com uso de PPS duas tarefas de interação um editor gráfico 2D.Mercedes Rocio Gonzales Marquez
Tarefas: fazer um retângulo e apagá-lo
no editor gráfico 2D.
a)Espaço de Estado
b) Conjunto Parcial de Regras (considerando unicamente as duas tarefas)
b.1) Não-comando, Menu-retângulo Comando-retângulo, Não-arraste
b.2) Comando-retângulo, mouse pressionado retângulo-elástico, guarda-ponto-mouse
b.3) Retângulo-elástico, evento nulo retângulo-elástico
b.4) Retângulo-elástico, solta mouse não-arraste, desenha-retângulo
b.5)
Menu-delete, seleção-retângulo apaga-retângulo,
não-comando
Especificações das Tarefas de Interação
6a Lista de Exercícios
Harlen C. Batagelo
3 - TAREFAS DE INTERAÇÃO USANDO PPS
Field ActiveCmd (PickCmd, EraseCmd, RotateCmd, LineCmd, TriangleCmd, RectCmd, CircleCmd)
PickCmd ?Ferramenta ?pick?
ativada. Modifica menu e ícone da barra de ferramentas?
EraseCmd ?Ferramenta
?erase? ativada. Modifica menu e ícone da barra de ferramentas?
RotateCmd "Ferramenta
'rotate' ativada. Modifica menu e ícone da barra de ferramentas"
LineCmd ?Ferramenta ?line?
ativada. Modifica menu e ícone da barra de ferramentas?
TriangleCmd ?Ferramenta
?triangle? ativada. Modifica menu e ícone da barra de ferramentas?
RectCmd ?Ferramenta ?rectangle?
ativada. Modifica menu e ícone da barra de ferramentas?
CircleCmd ?Ferramenta
?circle? ativada. Modifica menu e ícone da barra de ferramentas?
State Field SelectedObj (NoSelection, LineSel, TriangleSel, RectSel, CircleSel)
NoSelection ?Nenhuma primitiva
selecionada?
LineSel ?Linha selecionada?
TriangleSel ?Triângulo
selecionado?
RectSel ?Retângulo
selecionado?
CircleSel ?Círculo
selecionado?
Field DragMode (RubberLine, RubberTrianglePt1, RubberTrianglePt2, RubberTrianglePt3, RubberRect, RubberCircle, DraggingLine, NotDraggingLine, DraggingTriangle, NotDraggingTriangle, DraggingPt1, NotDraggingPt1, DraggingPt2, NotDraggingPt2, DraggingPt3, NotDraggingPt3, DraggingRect, NotDraggingRect, DraggingCircle, NotDraggingCircle, RotatingLine, NotRotatingLine, RotatingTriangle, NotRotatingTriangle, RotatingRect, NotRotatingRect)
RubberLine ?Rubberbanding
ativado para uma linha?
RubberTrianglePt1 ?Rubberbanding
ativado para as linhas que conectam a coordenada 1 de um triângulo?
RubberTrianglePt2 ?Rubberbanding
ativado para as linhas que conectam a coordenada 2 de um triângulo?
RubberTrianglePt3 ?Rubberbanding
ativado para as linhas que conectam a coordenada 3 de um triângulo?
RubberRect ?Rubberbanding
ativado para um retângulo?
RubberCircle ?Rubberbanding
ativado para uma elipse?
DraggingLine ?Arrastando
uma linha?
NotDraggingLine ?Encerra
arrasto da linha?
DraggingTriangle ?Arrastando
um triângulo?
NotDraggingTriangle ?Encerra
arrasto do triângulo"
DraggingPt1 ?Arrastando
1a. coordenada de um triângulo?
NotDraggingPt1 ?Encerra
arrasto da 1a. coordenada do triângulo?
DraggingPt2 ?Arrastando
2a. coordenada de um triângulo?
NotDraggingPt2 ?Encerra
arrasto da 2a. coordenada do triângulo?
DraggingPt3 ?Arrastando
3a. coordenada de um triângulo?
NotDraggingPt3 ?Encerra
arrasto da 3a. coordenada do triângulo?
DraggingRect ?Arrastando
um retângulo?
NotDraggingRect ?Encerra
arrasto do retângulo?
DraggingCircle ?Arrastando
um círculo?
NotDraggingCircle ?Encerra
arrasto da círculo?
RotatingLine "Rotacionando
uma linha"
NotRotatingLine "Encerra
rotação da linha"
RotatingTriangle "Rotacionando
um triângulo"
NotRotatingTriangle "Encerra
rotação do triângulo"
RotatingRect "Rotacionando
um retângulo"
NotRotatingRect "Encerra
rotação do retângulo"
Input Field CmdInput (NullEvent, MouseDown, MouseUp, MouseClick, PickMenu, EraseMenu, RotateMenu, LineMenu, TriangleMenu, RectMenu, CircleMenu)
NullEvent ?Evento nulo?
MouseDown ?Botão
do mouse está sendo pressionado?
MouseUp ?Botão
do mouse está liberado?
MouseClick ?Botão
do mouse foi pressionado e imediatamente liberado?
PickMenu ?Ferramenta
?pick? foi selecionada?
EraseMenu ?Ferramenta
?erase? foi selecionada?
RotateMenu "Ferramenta
'rotate' foi selecionada"
LineMenu ?Ferramenta
?line? foi selecionada?
TriangleMenu ?Ferrameta
?triangle? foi selecionada?
RectMenu ?Ferramenta
?rect? foi selecionada?
CircleMenu ?Ferramenta
?circle? foi selecionada?
Query Field MousePosition (NullEvent, MouseOnLine, MouseOnTriangle, MouseOnRect, MouseOnCircle, MouseOnLineCtrlPt, MouseOnTriangleCtrlPt, MouseOnRectCtrlPt, MouseOnCircleCtrlPt)
NullEvent ?Evento nulo?
MouseOnLine ?Cursor do
mouse posicionado sobre uma linha?
MouseOnTriangle ?Cursor
do mouse posicionado sobre um triângulo?
MouseOnRect ?Cursor do
mouse posicionado sobre um retângulo?
MouseOnCircle ?Cursor
do mouse posicionado sobre um círculo?
MouseOnLineCtrlPt ?Cursor
do mouse posicionado sobre um ponto de controle de uma linha?
MouseOnTriangleCtrlPt
?Cursor do mouse sobre um ponto de controle de um triângulo?
MouseOnRectCtrlPt ?Cursor
do mouse sobre um ponto de controle de um retângulo?
MouseOnCircle ?Cursor
do mouse sobre um ponto de controle de um círculo?
Field Action (DrawLine, DrawTriangle, DrawRect, DrawCircle, SaveMouseInput, DelLine, DelTriangle, DelRect, DelCircle, SelLine, SelTriangle, SelRect, SelCircle, DeSelAll, SavePt1, SavePt2, SavePt3, ResetAllPts, ShowCtrlPts, ShowRotCtrlPts, HideCtrlPts, ChangeLineWidth, ChangeTriangleWidth, ChangeRectWidth, ChangeCircleWidth, ChangeLineStyle, ChangeTriangleStyle, ChangeRectStyle, ChangeCircleStyle, ChangeLineColor, ChangeTriangleColor, ChangeRectColor, ChangeCircleColor)
DrawLine: ?Desenha uma
linha desde o ponto salvo até o ponto atual, utilizando as propriedades
definidas?
DrawTriangle ?Desenha
uma linha entre P1-P2, P2-P3, P3-P4, utilizando as propriedades definidas?
DrawRect ?Desenha um
retângulo do ponto salvo ao ponto atual, utilizando as propriedades
definidas?
DrawCircle ?Desenha um
círculo na caixa envoltória definida pelo ponto salvo ao
ponto atual (definido com coordenadas XY iguais à distância
da coordenada X do cursor do mouse ao ponto salvo), utilizando as propriedades
definidas?
SaveMouseInput ?Salva
o ponto da localização do cursor do mouse?
DelLine ?Apaga uma linha?
DelTriangle ?Apaga um
triângulo?
DelRect ?Apaga um retângulo?
DelRect ?Apaga uma elipse?
SelLine ?Seleciona uma
linha?
SelTriangle ?Seleciona
um triângulo?
SelRect ?Seleciona um
retângulo?
SelCircle ?Seleciona
um círculo?
DeSelAll ?Anula qualquer
seleção?
SavePt1 ?Salva o ponto
da localização do cursor do mouse como 1a. coordenada do
triângulo e define Pt1Saved?
SavePt2 ?Salva o ponto
da localização do cursor do mouse como 2a. coordenada do
triângulo e define Pt2Saved?
SavePt3 ?Salva o ponto
da localização do cursor do mouse como 3a. coordenada do
triângulo e define Pt3Saved?
ResetAllPts ?Define NoPtSaved?
ShowCtrlPts ?Exibe pontos
de controle de todas as primitivas (o CSO é desenhado com pontos
de controle de outra cor)?
ShowRotCtrlPts "Exibe
pontos de controle da mesma forma que ShowCtrlPts, mas com círculos
ao invés de retângulos, como descrito no projeto de diálogo"
HideCtrlPts ?Oculta pontos
de controle de todas as primitivas?
ChangeLineWidth ?Altera
largura da linha selecionada?
ChangeTriangleWidth ?Altera
largura das linhas do triângulo selecionado?
ChangeRectWidth ?Altera
largura das linhas do retângulo selecionado?
ChangeCircleWidth ?Altera
largura das linhas do círculo selecionado?
ChangeLineStyle ?Altera
o estilo da linha selecionada?
ChangeTriangleStyle ?Altera
o estilo das linhas do triângulo selecionado?
ChangeRectStyle ?Altera
o estilo das linhas do retângulo selecionado?
ChangeCircleStyle ?Altera
o estilo das linhas do círculo selecionado?
ChangeLineColor ?Altera
a cor da linha selecionada?
ChangeTriangleColor ?Altera
a cor das linhas do triângulo selecionado?
ChangeRectColor ?Altera
a cor das linhas do retângulo selecionado?
ChangeCircleColor ?Altera
a cor das linhas do círculo selecionada?
State Field SavedPoints (NoPtSaved, Pt1Saved, Pt2Saved, Pt3Saved)
NoPtSave ?Nenhuma coordenada
do triângulo foi definida?
Pt1Saved ?1a. coordenada
do triângulo foi definida?
Pt2Saved ?2a. coordenada
do triângulo foi definida?
Pt3Saved ?3a. coordeanda
do triângulo foi definida?
VThinMenu ?Largura ?VThin?
foi selecionada?
ThinMenu ?Largura ?Thin?
foi selecionada?
MediumMenu ?Largura ?Medium?
foi selecionada?
ThickMenu ?Largura ?Thick?
foi selecionada?
VThickMenu ?Largura ?VThick?
foi selecionada?
Field WidthCmd (VThinCmd, ThinCmd, MediumCmd, ThickCmd, VThickCmd)
VThinCmd ?Ferramenta ?VThin?
ativada. Modifica menu e ícone da barra de ferramentas. Altera propriedade
do CSO?
ThinCmd ?Ferramenta ?Thin?
ativada. Modifica menu e ícone da barra de ferramentas. Altera propriedade
do CSO?
MediumCmd ?Ferramenta
?Medium? ativada. Modifica menu e ícone da barra de ferramentas.
Altera propriedade do CSO?
ThickCmd ?Ferramenta
?Thickn? ativada. Modifica menu e ícone da barra de ferramentas.
Altera propriedade do CSO?
VThickCmd ?Ferramenta
?VThick? ativada. Modifica menu e ícone da barra de ferramentas.
Altera propriedade do CSO?
SolidMenu ?Estilo ?Solid?
foi selecionado?
DashMenu ?Estilo ?Dash?
foi selecionado?
DotMenu ?Estilo ?Dot?
foi selecionado?
Field StyleCmd (SolidCmd, DashCmd, DotCmd)
SolidCmd ?Ferramenta ?Solid?
ativada. Modifica menu e ícone da barra de ferramentas. Altera propriedade
do CSO?
DashCmd ?Ferramenta ?Dash?
ativada. Modifica menu e ícone da barra de ferramentas. Altera propriedade
do CSO?
DotCmd ?Ferramenta ?Dot?
ativada. Modifica menu e ícone da barra de ferramentas. Altera propriedade
do CSO?
Field ColorCmd (BlackCmd, BlueCmd, GreenCmd, CyanCmd, RedCmd, MagentaCmd, YellowCmd, WhiteCmd)
Especificações das Tarefas de Interação
6a Lista de Exercícios
Jorge Kawamura
Paulo G. Seifer
Especificar com uso de PPS duas tarefas de interação de um sistema gráfico interativo que você conhece.
As tarefas que serão analisadas serão o inserção de uma circunferência na tela e remoção de um objeto desenhado.
Especificações das Tarefas de Interação
IA369J
6a Lista de Exercícios
State Space
Field Type |
Field Name |
Conditions |
Field |
DragLine |
NoDragLine, DragLinePt1, DragLinePt2, DragLineAll |
Field |
DragTriangle |
NoDragTriangle, DragTrianglePt1, DragTrianglePt2, DragTrianglePt3, DragTriangleAll |
Field |
DragRect |
NoDragRect, DragRectTop, DragRectTopRight, DragRectRight, DragRectBottomRight, DragRectBottom, DragRectBottomLeft, DragRectLeft, DragRectTopLeft, DragRectAll |
Field |
DragCircle |
NoDragCircle, DragCircleRadius, DragCircleAll |
Input Field |
MouseInput |
NoMouseEvt, LBMouseDown, LBMouseUp, MouseMove |
Input Field |
Color |
Black, Red, Green, Blue, Yellow, Magenta, Cyan |
Input Field |
Draw |
Line, Triangle, Rectangle, Circle |
Field |
MousePos |
NoPicture, OnLine, OnLinePt1, OnLinePt2, OnTriangle, OnTrianglePt1, OnTrianglePt2, OnTrianglePt3, OnRect, OnRectTop, OnRectTopRight, OnRectRight, OnRectBottomRight, OnRectBottom, OnRectBottomLeft, OnRectLeft, OnRectTopLeft, OnCircle, OnCircleRadius |
Field |
Selection |
NoSel, LineSel, TriangleSel, RectSel, CircleSel |
Rule Set
NoDragLine, OnLine, LBMouseDown |
DragLineAll |
NoDragLine, OnLinePt1, LBMouseDown |
DragLinePt1 |
NoDragLine, OnLinePt2, LBMouseDown |
DragLinePt2 |
DragLineAll, LBMouseUp |
NoDragLine |
DragLinePt1, LBMouseUp |
NoDragLine |
DragLinePt2, LBMouseUp |
NoDragLine |
NoDragTriangle, OnTriangle, LBMouseDown |
DragTriangleAll |
NoDragTriangle, OnTrianglePt1, LBMouseDown |
DragTrianglePt1 |
NoDragTriangle, OnTrianglePt2, LBMouseDown |
DragTrianglePt2 |
NoDragTriangle, OnTrianglePt3, LBMouseDown |
DragTrianglePt3 |
DragTriangleAll, LBMouseUp |
NoDragTriangle |
DragTrianglePt1, LBMouseUp |
NoDragTriangle |
DragTrianglePt2, LBMouseUp |
NoDragTriangle |
DragTrianglePt3, LBMouseUp |
NoDragTriangle |
NoDragRect, OnRect, LBMouseDown |
DragRectAll |
NoDragRect, OnRectTop, LBMouseDown |
DragRectTop |
NoDragRect, OnRectTopRight, LBMouseDown |
DragRectTopRight |
NoDragRect, OnRectRight, LBMouseDown |
DragRectRight |
NoDragRect, OnRectBottomRight, LBMouseDown |
DragRectBottomRight |
NoDragRect, OnRectBottom, LBMouseDown |
DragRectBottom |
NoDragRect, OnRectBottomLeft, LBMouseDown |
DragRectBottomLeft |
NoDragRect, OnRectLeft, LBMouseDown |
DragRectLeft |
NoDragRect, OnRectTopLeft, LBMouseDown |
DragRectTopLeft |
DragRectAll, LBMouseUp |
NoDragRect |
DragRectTop, LBMouseUp |
NoDragRect |
DragRectTopRight, LBMouseUp |
NoDragRect |
DragRectRight, LBMouseUp |
NoDragRect |
DragRectBottomRight, LBMouseUp |
NoDragRect |
DragRectBottom, LBMouseUp |
NoDragRect |
DragRectBottomLeft, LBMouseUp |
NoDragRect |
DragRectLeft, LBMouseUp |
NoDragRect |
DragRectTopLeft, LBMouseUp |
NoDragRect |
NoDragCircle, OnCircle, LBMouseDown |
DragCircleAll |
NoDragCircle, OnCircleRadius, LBMouseDown |
DragCircleRadius |
DragCircleAll, LBMouseUp |
NoDragCircle |
DragCircleRadius, LBMouseUp |
NoDragCircle |