throbber
Netflix Ex. L015 ~
`
`(cid:49)(cid:72)(cid:87)(cid:73)(cid:79)(cid:76)(cid:91)(cid:3)(cid:89)(cid:17)(cid:3)(cid:42)(cid:82)(cid:55)(cid:57)(cid:3)
`Netflix v. GoTV
`(cid:44)(cid:51)(cid:53)(cid:21)(cid:19)(cid:21)(cid:22)(cid:16)(cid:19)(cid:19)(cid:26)(cid:24)(cid:26)(cid:3)
`IPR2023-00757
`(cid:49)(cid:72)(cid:87)(cid:73)(cid:79)(cid:76)(cid:91)(cid:3)(cid:40)(cid:91)(cid:17)(cid:3)(cid:20)(cid:19)(cid:20)(cid:24)
`
`
`
`

`

`Developing
`UserIntertaces
`
`
`
`
`
`
`
`Dan R.Olsen,Jr.
`Carnegie Mellon University/Brigham Young University
`
`Mi r<
`MORGAN KAUFMANN PUBLISHERS, INC.
`San Francisco, California
`
`

`

`
`
`- hae]B.Morgan
`
`
`Sponsoring Editor ieer
`production Manager=Yome tt
`
`production Editor
`pies refiner Alati
`
`Editorial Coordinator Mari yn
`+
`
`eff Van Buere
`Paypeal
`Side by ps sepcige
`
`
`Illustration
`ens aK
`Composition
`Nancy ! Og tien
`
`Cover Design
`Ross Carron Des en
`Proofreaders
`Erin Milnes, Gary
`
`Indexer
`Steve Rath
`
`Printer
`Courier Corporation
`
`
`
`
`
`
`
`
`.
`Morris
`
`Morgan KaufmannPublishers,Inc.
`Editorial and Sales Office:
`340 Pine Street, Sixth Floor
`San Francisco, CA 94104-3205
`USA
`
`415/392-2665
`Telephone
`415/982-2665
`Facsimile
`mkp@mkp.com
`Email
`http://www.mkp.com
`WWW
`Ordertoll free 800/745-7323
`
`©1998 Morgan KaufmannPublishers,Inc.
`All rights reserved
`Printed in the United States of America
`
`02
`
`01
`
`00
`
`99
`
`98
`
`vendo)
`
`2
`
`Pall
`
`Nopartof this publication may be reproduced, storedin a retrieval system,or transmitted in any
`form or by any means—electronic, mechanical, photocopying, recording, or otherwise—without
`the prior written permissionof the publisher.
`
`
`
`
`
`
`
`
`
`
`Library of Congress Cataloging-in-Publication Data
`Olsen, Dan R., 1953-
`
`Developing user interfaces/Dan R, Olsen,Jr.
`
`p. cm.
`
`ISBN 1-55860-418-9
`1. Userinterfaces (Computer s
`CACO: Pp
`ystems) 2. Computer software—Development. I. Title.
`
`
`
`005.4’28--dce2] 97-45231
`
`

`

`
`
`
`
`Contents
`
`
`
`XV
`
`1 1 1 2 2
`
`, 3 4 4 5 6
`
`ll
`
`eeelyun
`
`heOo
`
`25
`
`25
`
`26
`26
`27
`
`Preface
`
`Chapter 1
`
`Introduction
`
`1.1
`
`12
`
`What This BookIs About
`1.1.1
`Early Computing
`1.1.2 Winds of Change
`1.1.3
`The Legacy of Lab Coats
`1.1.4 A Question of Control
`Setting the Context
`1.2.1
`Computer Graphics
`1.2.2
`HumanFactors and Usability
`1.2.3 Object-Oriented Software
`1.2.4 Commercial Tools
`
`1.3
`
`1.4
`
`An Overview of the UserInterface
`1.3.1
`The Interactive Cycle
`1.3.2
`The Interactive Porthole
`1.3.3
`The Interface Design Process
`Summary
`
`Chapter 2
`
`2.1
`
`Designing the Functional Model
`Examples of Task-Oriented Functional Design
`
`2.1.3 Why DoSecretaries Have Typewriters?
`
`vi
`
`
`
`

`

`
`
`CONTENTS
`
`2..2,
`
`2.3
`
`2.4
`
`ee
`
`2.6
`
`Overall Approach
`9.2.1
`Task Analysis
`2.2.2
`Evaluation of the Analysis
`2.2.3
`Functional Design
`Task Analysis
`2.3.1
`Examples of Task Analysis
`2.3.2
`VCR Task Analysis
`2.3.3
`Student Registration Task Analysis
`Evaluationof the Analysis
`2.4.1 Understanding the User
`2.4.2 Goals
`2.4.3
`Scenarios
`2.4.4
`Programmers and User Interface Design
`Functional Design
`2.5.1 Assignment of Agency
`2.5.2 Object-Oriented Functional Design
`Summary
`
`Chapter3
`
`3.1
`
`3.2
`
`3.3
`
`3.4
`
`3.5
`
`Basic Computer Graphics
`Models for Images
`3.1.1
`Stroke Model
`3.1.2
`Pixel Model
`3.1.3
`Region Model
`Coordinate Systems
`3.2.1 Device Coordinates
`3.2.2
`Physical Coordinates
`3.2.3 Model Coordinates
`3.2.4
`Interactive Coordinates
`HumanVisual Properties
`3.3.1 Update Rates
`Graphics Hardware
`3.4.1
`Frame Buffer Architecture
`3.4.2 Cathode Ray Tube
`3.4.3
`Liquid Crystal Display
`3.4.4 Hardcopy Devices
`Abstract Canvas Class
`
`
`
`3.5.1 Methods and Properties
`
`

`

`
`
`viii
` » CONTENTS
`
`3.8
`
`3.9
`
`3.6 Drawing
`3.6.1
`Paths
`3.6.2
`Closed Shapes
`3.7 Text
`Font Selection
`3.7.1
`Font Information
`3.7.2
`3.7.3 Drawing Text
`3.7.4 Outline vs. Bitmapped Fonts
`3.7.5 Character Selection
`3.7.6
`Complex Strings
`Clipping
`3.8.1
`Regions
`Color
`3.9.1 Models for Representing Color
`3.9.2 Human ColorSensitivity
`Summary
`
`3.10
`
`Chapter 4
`
`4.1
`
`4.2
`
`4.3
`
`4.4
`
`Basics of Event Handling
`Windowing System
`4.1.1
`Software View of the Windowing System
`4.1.2 Window Management
`4.1.3 Variations on the Windowing System Model
`4.1.4 Windowing Summary
`Window Events
`4.2.1
`Input Events
`4.2.2 WindowingEvents
`4.2.3
`Redrawing
`The Main Event Loop
`4.3.1
`Event Queues
`4.3.2
`Filtering Input Events
`4.3.3 Howto Quit
`4.3.4 Object-Oriented Modelsof the
`Event Dispatching and Handling
`4.4.1 Dispatching Events
`4.4.2
`Simple Event Handling
`4.4.3 Object-Oriented Event Handling
`
`Event Loop
`
`104
`
`105
`
`106
`106
`108
`108
`
`109
`
`111
`112
`117
`
`
`
`

`

`4.5 Communication between Objects
`4.5.1
`Simple Callback Model
`;
`,
`4.5.2,
`Parent Notification Model
`4.5.3 Object Connections Model
`Summary
`
`4.6
`
`CONTENTS
`
`"
`
`121122
`124
`oe
`126
`
`
`
`Chapter5 Basic Interaction
`5.1
`Introduction to Basic Interaction
`5.1.1
`Functional Model
`5.2 Model-View-Controller Architecture
`5.2.1
`The Problem with Multiple Parts
`5.2.2. Changing the Display
`5.2.3 General Event Flow
`5.3 Model Implementation
`5.3.1
`Circuit Class
`5.3.2 CircuitView Class
`5.3.3
`View Notification in the Circuit Class
`5.3.4 Overview of the Circuit Class
`5.4 View/Controller Implementation
`5.4.1
`PartListView Class
`5.4.2
`LayoutView Class
`5.5 Review of Important Concepts
`5.5.1
`Functional Model
`5.5.2 View Notification
`5.5.3 View Implementation
`5.6 AnAlternative Implementation
`5.7 Visual C++
`5.7.1
`CView
`5.7.2 CDocument
`Summary
`
`5.8
`
`Chapter 6 Widget Tool Kits
`6.1 Model-View-Controller
`6.1.1 Widget Models
`6.1.2
`Independenceof View and Controller
`
`170
`
`129
`129
`130
`132
`134
`135
`138
`143
`143
`144
`145
`146
`147
`147
`152
`161
`161
`161
`162
`163
`164
`164
`165
`166
`
`167
`167
`168
`
`

`

`
`
`179
`173
`174
`175
`\75
`\76
`
`\77
`177
`185
`186
`189
`19]
`193
`193
`
`194
`
`195
`
`195
`
`197
`
`198
`
`198
`201
`
`201
`
`202
`203
`204
`205
`
`210
`
`211
`
`213
`
`215
`
`215
`
`
`ook
`e Look Must Present
`; What th
`f Screen Space
`Economy °
`‘19
`oe Consistent
`Look
`| Issues 1n
`itectura
`6.4.4 Architec
`4SeptAlphabet ofInteractiveBehaviors
`6.5.2
`Perceived Safety
`Summary
`
`Designing the Look
`
`6.5
`
`6.6
`
`
`
`
`
`
`
`
`
`
`
`Chapter8
`
`8.]
`
`Chapter7
`7.1
`
`7.2
`
`73
`
`7.4
`
`fan
`
`Interfaces from Widgets
`Data-Driven Widget Implementations
`7.1.1 Collections of Widgets
`Specifying Resources
`7.2.1
`Resource Organizations
`7.2.2
`Interface Design Tools
`Layout
`Fixed-Position Layout
`7.3.1
`Struts and Springs
`73.2
`Intrinsic Size
`7.3.3
`7.3.4 Variable Intrinsic Size
`Communication
`74.1
`Parent Notification
`Summary
`
`
`
`
`
`
`
`
`
`
`
`Input Syntax
`Ee Description Languages
`
`1.1
`elds and Conditions
`
`aePecial Types of Fields and Conditions
`
`216
`
`

`

`Productions
`
`Input Sequences
`
`8.1.3
`8.1.4
`8.2 Buttons
`Check Buttons
`8.2.1
`Scroll Bars
`8.3
`8.4 Menus
`8.5
`Text Box
`8.6
`From Specification to Implementation
`8.6.1
`Fields
`8.6.2
`Productions
`Summary
`
`8.7
`
`9.3
`
`Chapter9 Geometry of Shapes
`9.1 The Geometry ofInteracting with Shapes
`9.1.1
`Scan Conversion
`9.1.2. Distance from a Point to an Object
`9.1.3
`Bounds of an Object
`9.1.4 Nearest Point on an Object
`9.1.5
`Intersections
`9.1.6
`Inside/Outside
`9.2 Geometric Equations
`9.2.1
`Implicit Equations
`9.2.2
`Parametric Equations
`Path-Defined Shapes
`9.3.1
`Lines
`9.3.2 Circles
`9°35.
`AICS
`9.3.4
` Ellipses and Elliptical Arcs
`9.3.5
`Curves
`9.3.6
`Piecewise Path Objects
`Filled Shapes
`9.4.1
`Rectangles
`9.4.2 Circles and Ellipses
`9.4.3
`Pie Shapes
`9.4.4 Boundary-Defined Shapes
`Summary
`
`9.4
`
`9.5
`
`CONTENTS
`
`xi
`
`*
`
`2
`2:20
`222
`225
`230
`234
`237
`238
`242
`248
`
`280
`
`249
`250
`251
`251
`252
`252
`253
`253
`253
`253
`254
`255
`255
`258
`261
`264
`266
`274
`974
`974
`276
`277
`277
`
`

`

`
`
`xii
`
`» CONTENTs
`
`Chapter
`
`10
`
`10,
`
`1
`
`G
`:
`Geometric Transformations
`The ThreeBasic Transformation 8
`10.1.1 Translation
`10.1.2 Scaling
`10.1.3. Rotation
`10.1.4 Combinations
`10.2 Homogeneous Coordinates
`e
`10.2.1
`Introductio
`n
`i
`to the Homogeneous Coordinate
`TOS Concatenation
`10.2.3 Vectors
`10.2.4 Inverse Transformations
`obo ees aboutan Arbitrary Point
`
`10.3
`
`10.4
`
`10.5
`
`10.6
`
`ree-Point Transformation
`A Viewing Transformation
`10.3.1 Effects of Windowing
`10.3.2 Alternative Controls of Viewing
`Hierarchical Models
`10.4.1 Standard Scale, Rotate, Translate Sequence
`Transformations and the Canvas
`10.5.1 Manipulating the Current Transformation
`10.5.2 Modeling with Display Procedures
`Summary
`
`11.1
`
`11.2
`
`11.3
`
`Chapter 11 Interacting with Geometry
`Input Coordinates
`Object Control Points
`Creating Objects
`11.3.1 Line Paths
`11.3.2 Splines
`11.3.3 Polygons
`Manipulating Objects
`11.4.1 Selection and Dragging
`11.4.2 General Control Point Dragging Dialog
`Transforming Objects
`11.5.1 Transformable Representationsof Shapes
`11.5.2.
`Interactive Specification of the Basic
`Transformations
`11.5.3 Snapping
`
`11.4
`
`11:9
`
`Ss
`
`281
`
`281
`
`282
`282
`283
`284
`
`285
`
`2.86
`287
`288
`288
`289
`290
`
`290
`
`292
`293
`
`294
`
`295
`
`295
`
`296
`298
`
`300
`
`301
`
`301
`
`303
`
`304
`
`306
`309
`309
`
`310
`
`310
`313
`
`315
`
`315
`
`317
`323
`
`
`
`

`

`
`
`CONTENTS
`
`
`
`
`11.6 Grouping Objects
`11.6.1 Selection in a Hierarchical Model
`11.6.2. Level of Interaction ina Hierarchy
`Summary
`
`11.7
`
`12.2
`
`Chapter 12 Drawing Architectures
`Basic DrawingInterface
`12.1
`Interface Architecture
`12.2.1 Draw-Area Architecture
`12.2.2 Palette Architecture
`12.2.3 Summary of Architecture
`12.3 Tasks
`12.3.1 Redrawing
`12.3.2 Creating a New Object
`12.3.3 Selecting Objects
`12.3.4 Dragging Objects
`12.3.5 Setting Attributes
`12.3.6 Manipulating Control Points
`Summary
`
`12.4
`
`Chapter 13 Cut, Copy, and Paste
`13.1 Clipboards
`13.1.1 Simple Clipboard
`Publish and Subscribe
`13.2
`13.3 Embedded Editing
`13.3.1 Embedded Pasting
`13.3.2 Edit Aside
`13.3.3 Edit in Place
`
`13.4
`
`Summary
`
`Chapter 14 Monitoring the Interface: Undo, Groupware,
`and Macros
`
`14.1
`
`Undo/Redo
`14.1.1 Simple History Architecture
`14.1.2 Selective Undo
`14.1.3 Hierarchical Undo
`14.1.4 Review of Undo Architectural Needs
`
`324
`326
`327
`
`328
`
`331
`
`331
`
`334
`
`- 336
`342,
`345
`
`346
`
`346
`347
`349
`350
`352,
`353
`
`354
`
`357
`
`358
`
`359
`
`364
`
`367
`
`368
`370
`370
`
`371
`
`373
`
`374
`
`375
`376
`377
`378
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`
`
`xiv
`s CONTENTS
`
`14.2
`
`14.3
`
`14.4
`
`Groupware
`14.2.1 Asynchronous Group Work
`14.2.2 Synchronous Group Work
`14.2.3 Groupware Architectural Issues
`Macros
`
`Monitoring Architecture
`14.4.1 Command Objects
`14.4.2 Extended CommandObjects
`
`14.5
`
`Summary
`
`Endnotes
`
`Index
`
`378
`
`378
`380
`380
`
`381
`
`383
`383
`389
`
`391
`
`393
`
`397
`
`
`
`

`

`Basic Computer
`Graphics
`
`He completed a functional design of what our user
`
`interactive software.
`
`interface is to accomplish and howitis logically struc-
`tured, we mustlay the technical groundwork required
`for implementing graphical presentations. This chapter covers the basics of
`2D computergraphics, involving the basic drawing techniques and hardware.
`Also included is the necessary 2D geometry required for interaction with
`primitive forms. Wealso discussthe issuesof text, clipping a drawing to stay
`within a particular region, andcolor.
`In this chapter, we focuson the basic 2D primitives that are required to pre-
`sent information to the users so they can interactively manipulate it. The
`field of computergraphicsis quite diverse, and only thebareessentials are pre-
`sentedhere.In creating realistic images of physical objects, we must consider
`3D perspective viewing, realistic reflection of light and shadow,texturing
`physical objects, and removing hidden surfaces. The whole area ofrealistic
`physical models as well as the animation of such models is not considered
`here. A variety of computergraphicstexts already address these issues.
`In addition to ignoring high-level 3D modeling and rendering, wealso
`ignore scan conversion. Scan conversion is the process of converting a geo-
`metric shape suchasa line or polygonintoasetof pixels that represent the
`shape on the screen or a printer. Weassumethat any userinterface tool kit
`will provide methodsor procedures that perform such tasks for us.
`In this chapter, we assume that we are using a graphics package thatcan
`draw a variety of 2D shapes, given the appropriate inputs. Our problem is to
`understand howto invoke such methods and how to organize them in a way
`that will efficiently display our user's information. Understanding the various
`display architectures will help us understand how thosearchitecturesaffect
`
`

`

`
`
`52

`
`<
`
`RASIC compuTeé®
`
`GF
`
`aPHICS
`
`5) (9, 7) thick v 2)
`3
`k
`Line (4,
`Line (4, 10) (4, 17) thie ick 3)
`Circle (19, 8) radius di
`
`stroke representation of images
`Figure 3-1
`5
`3.1 Models for Images
`se
`pri
`to
`re resent 2D images—Stto es, pixels, and
`aePe ways to
`af - arehelpful for display, modeling,or
`
`nd each hasit
`
`There are tl
`regions. Eac
`interaction, 4
`3.1.1 Stroke Model
`epresenting geometric objects
`e modelis the earliest form used for F
`odel, we describe all images as strokesof somespeci
`-1 showsa simple diagram ee
`The strok
`fied color and thickness. For example, Figure
`in a comput
`its accompanying stroke representation.
`In the strokerepresentation, the type of stroke and its geometry arere
`refreshdisplays anddirect-view storagetubesreuena
`control hardware was requiredto he
`sented. Early vector
`their images in this fashion. Special
`late the stroke representation into images On the screen. Plotters acceptsuch
`representations and convert them into paths thatthepenshouldcolts
`draw the stroke onpaper. PostScriptprinters also accept suchaepee
`tion, whichtheythenconverttoaregionmodelandthentoapixelmodelin
`sed for many interactive
`actual printing.
`The stroke modelis the one thatis commonly u
`ce tool kits provide mort
`applications. Most graphics packages in user interfa
`iptical arcs, rectangles
`complex stroked objects, including arcs, ellipses, ell
`with rounded corners, and various curved shapes.
`
`er. In this ™
`
`3.1.2 Pixel Model
`The stroke model, however, 1s not adequate for representingmoreTybil
`complex images, such as Figure 3-2. Such images req)
`
`
`

`

`
`
`
`
`MODELS FOR IMAGES
`
`AL
`
`
`
`
`
`
`divides the image into a discrete numberof pixels and then stores an intensity
`or color value for each pixel. In addition,all of today’s graphics hardware is
`pixel based, which meansthat ultimately all models must be reduced to pix-
`els before printing or display.
`There are three key aspects to the resolution of a pixel image. The number
`of rowsof pixels and the numberofpixels per row constitute the spatial reso-
`lution of the image. For good display screens, this is 1024x768, with somedis-
`plays going higher. For most laser printers,
`the resolution varies from
`3000x2400 to 6000x4800 in order to create a high-quality printed page. The
`third aspect is the image depth or numberofbits required to represent each
`pixel.There are four basic forms of pixel-based images. Thefirst is a simple
`bitmap, where each pixel consists of one bit that is either on or off. Such a
`model is suitable for representing the black and white of a printed page. In
`orderto represent levels of gray, several pixels are grouped togetherin various
`patterns of on and off, producing an appearance of grayness. This is the
`approachusedin laser printers, which can either put down a spotof ink or not.
`With very high resolution, this halftoning or dithering process can produce
`acceptablegray.
`In the second method, gray-scale images provide more than1bitper pixel.
`Some systemssuchastheearly NeXTprovided2 bits per pixel. This approach
`only doubled the space required to store the screen image while providing four
`levels of gray. This 2-bit image only marginally improved the quality of pho-
`tographs and other realistic images, but it significantly improved the appear-
`ance of interface items such as buttons and type-in boxes. Items that the
`Macintosh (using bitmaps) had to represent as grainy patterns appeared
`smooth on the NeXT. Most modern gray-scale systemsprovide8 bits (1 byte)
`per pixel, which can represent 956 levels of gray ranging from 0 (black} to 255
`(white). A 1024x1024 gray-scale image requires | megabyteof storage.
`
`

`

`
`
`BASIC COMPUTER GRA
`
`PHICS
`

`
`3.
`
`
`
`Figure 3-3
`
`Pixel representation of a line
`
`A
`
`on of ima
`
`;
`i
`full-color rep-
`aeaes Braeeacea:
`The third, and mostflexible, representati
`resentation. Colors are assembled from the three ad eeeee Pcconcol.
`green, and blue. With8bits per primarycolor(3 bypealyi Seenca tora
`ors can be represented. Such an image format r ae StereShiy teal:
`1024x1024 image. Space becomesa problemwhen
`Sab
`tic full-color images. For photograph-quality images that are 3000
`)
`approximately 22 MBof storage are required. Because of these requirements,
`compression techniquesare often used.
`Thefourth representation is the color-mapped image. In this case, only 8
`bits are used per pixel. Instead of storing a color, each pixel stores an index
`into a color table that contains the full 24 bits for each indexed color. This
`allows manycolor images to be represented in the same space as a gray-scale
`image. Manycolordisplays that are being used for normalinteraction, rather
`than photograph-quality applications, are based on the lookup-table image
`model. In addition to cutting the storage spaceto a third, the smaller number
`of bytes also reduces the amount of computation required to manipulate the
`pixels.
`Although the pixel model can represent any image, there are some prob-
`lems when converting strokeor region objectsinto pixels.If the spatial resolu-
`tion of thepixel Image is low, as shown in Figure 3-3, aliasing can occur where
`smoothobjects, such as a line, appearjagged.
`
`
`
`

`

`
`
`
`Figure 3-4 Antialiasedline
`
`Figure 3-5 Region-based image
`
`
`
`3.1.3 Region Model
`The third image modelis the region model.In this model, stroke objects are
`used to outline the regionto befilled, as shown in Figure 3-5. There are vari-
`ous models by whichregionsarefilled, including constant colors or various
`blendings to produce shaded effects. A major advantage of region models is
`that filled shapes can be represented in very little memory and in a way that
`is independentof the display resolution. This is very advantageousfor high-
`resolution display devices, such as laser printers, where transferring a full page
`to the printer would requireat least 2, MBin pixel form (thus slowing commu-
`nications) and would require that the computer software be aware of the
`printer’s resolution.
`das regions and then converted to bitmapsinside of
`Even text is represente
`od clear text of any size to be generated. In
`the printer; this method allows go
`
`

`

`
`
`56

`
`3
`
`;
`BASIC COMPUTER GRAPHICS
`
`,
`
`y
`
`Origin at the center
`
`Origin at lowerleft
`Figure 3-6 Normal Cartesian coordinates
`
`t be converted to a region
`:
`fact, even a line that is 1 pixel wide o ae ca oer ona
`ter. Otherwise
`Bee
`of pixels when rendered on a 600-dpi
`the line would be too thin in print.
`
`mus
`
`3.2 Coordinate Systems
`An importantconsideration in drawingobjectsis the coordinate system of the
`drawing and the coordinate system in which the objects are defined in the
`application. These coordinate systems may not be the same; this merits care-
`ful discussion
`
`3.2.1 Device Coordinates
`Device coordinates are the coordinatesof the actual display device. In most
`Bene texts, ae origin of the coordinate system is either in the lowerleft
`or
`the center with positive x going to the right and positive
`i
`shownin Figure 3-6.
`3
`nae rE
`eli ereranate system is rarely usedfor frame buffers graphicsdisplays, or
`printers,
`because most display devices wo

`rk from the upperleft an
`Seger zkEp reason, most devices use the coordinates aay, in ee
`cases Aaeeeieerunatss peaeys ponuye tebers, Seroae
`ew
`S where additional
`i
`i
`by the printer’s processor before actual daniomaie oF ne ane
`eet aaoe to the use of device coordinatesin displaying
`presented with a window a Aoge interface tool kits, the programmeris
`Presented to the programmer a fe BAACHOR for the display. This window 8
`Sa virtual display on which the programmeris
`
`Onesignificant
`
`ificati
`
` Re
`
`——
`
`

`

`
`
`Origin at upper left
`
`3.2
`
`COORDINATE sysTEMS *
`
`57
`
`
`
`—_. —_—$—$——
`
`y
`
`Figure 3-7 Device coordinates
`
`Origin at upperleft
`
`Figure 3-8 Windowcoordinates
`
`free to draw. Most such systemsalso provide a frame around this window that
`allows the user to manipulate the window’s location and size. The program’s
`coordinates are placed inside of the window as if the frame did notexist, as
`shownin Figure 3-8. The programmerthentreats the window asa display in
`and ofitself and generally ignoresthe larger space of device coordinates.
`Window coordinates and sizes, like display coordinates and sizes, are
`almost always expressed in pixels. Because some windowscan receive mouse
`events that are outside of their boundaries, mouse events in some systemsare
`reported in display coordinates rather than window coordinates. It is impor-
`tant to know howa particular system handles mouse coordinates so that the
`appropriate conversions are doneto makethe input coordinates and the draw-
`ing coordinates consistent.
`
`
`
`

`

`
`
`58

`
`3°
`
`BASIC CompuTER GRA
`
`FP
`
`HICS
`
`hen dealing with display
`3.2.2 Physical Coordinates
`Pixel-based device coordinates can be a BOO ret is 20 pixels long on a
`devices of varying resolutions. For example, a line 4 ; laser printer. What we
`1024x1024 screenappears very differently on a ne its, such as inches, cen.
`need is to specify display coordinates in physical units,
`timeters, or printer points.
`laser printer in termsof inches,
`Let us suppose that we want to eek one
`00 dots (pixels) per inch laser
`Suppose also that we know that this isa é ,
`printer, The conversion from 5 inchestopixels i
`5 inches « 600 dpi = 3000 pixels
`Printer points for defining font sizes are defined oF 72 points to
`a 400-dpi printer, the height of 12-point text would be
`12points*Linch , 499 dpi - 67 pixels
`72 points
`Defining devices in physical units simplifies the formatting of displaysee
`be used on a variety of media butalso requires a multiplication of every co
`dinate by some constant. Because these conversions can cause a performance
`problem on low-end machines, sometool kits still present pixel coordinates
`as the modelfor devices and leave any conversions upto the application. Laser
`printers, on the other hand, have been forcedby their varying resolutions to
`present physical units as their coordinate model,
`
`ints
`
`to
`
`ae
`
`the inch.
`
`For
`
`3.2.3 Model Coordinates
`In manysituations, the information objects are modeled in coordinates that
`are very different from the display coordinates. In a word processoror drawing
`package, the coordinates of the model are in physical units for printing
`becausetheapplication is modeling exactly whatis going onto the page.
`For an architectural drawing, however, the model units are feet or meters
`when designing buildings. Thus a scaling transformation is required that
`transformsfeet, for example, into inches, which can then be used as physical
`display units. A possible scaling might be 10 feet to the inch. This would
`make the total transformation (for an example length of 22 feet) from model
`coordinates to a 100-pixel-per-inch display
`22 feet» Linch , 100pixels
`— 220 pixels
`10 feet
`linch
`j
`Theconstants in this formulaca
`ined
`n be combinedinto a simpler formula that
`can be usedon allpartsofthe drawingof the building:
`P
`
`

`

`52
`
`3.3
`
`HUMAN VISUAL PROpERTIES
`

`
`If, howeve
`Sraheed, CAUSE
`n
`
`rT;
`
`..
`
`pelbpixe
`22 feet + —“BIXSI§ _ 720pixels
`oot
`h
`he scale of the drawing changes or the display device is
`t
`>
`Tar
`+
`>
`}
`Constants must be recalculated
`|
`
`3.2.4 Interactive Coordinates
`Up until now we
`received from Aeate ye considered SERUt Wet aes SeUbRooates
`directions whe toler oF other device, the mapping must workin the other
`Maree Ent AR £ general formula maps a point in some model coordi-
`a particular location on the screen:
`ModelPoint =
`'
`DrawScale « PhysicalToPixel + WindowOrigin = OutputPoint
`peatpeicesrenatomne this pointinto physical display units, Physical-
`:
`nes
`Ceeree S
`the
`point from physicaldisplay units into pixels, and the
`Bl
`ovesthe whole drawing to where the windowis located on
`the screen. WindowOriginis definedin pixels.
`If a mouse inputis received, it will be defined in pixels relative to the upper
`left of the screen, The transformation mustbe reversed to producea pointin
`model coordinates. This new transformationis
`
`The DrawSca
`
`;
`(InputPoint — WindowOrigin)
`_ ModelPoint
`PhysicalToPixel- DrawScale
`Weneed to have the input point converted to model coordinates so that we
`can use that point as information in changing our model of the application
`information.
`There are many moreissues involvedin defining the geometric mappings
`between application models and actualdisplays. The simple analysis we have
`done here is only the beginning. In Chapter 10, we will discuss a more com-
`plete system based on homogeneous coordinates and matrix algebra.
`
`3.3 HumanVisualProperties
`In order to interactively present informationto users, we need to understanda
`little about the human visual system. This understanding is essentialin
`that are understandable andpleasing
`nd interactions
`designing presentations a
`to the eye.
`
`
`
`

`

`
`
`60
`=
`
`3
`
`BASIC COMPUTER GRAPHICS
`
`3.3.1 Update Rates
`
`Early moviemakers were limited by their technology in ay numpetor cae
`of film that could be presented to a viewerin a second.
`Conseq
`y,
`y
`i
`yi
`ent but it does not look
`silent films appear very jerky. We perceive the movem
`yeehved totiewers
`real, Experimentation has shown that when images are presented
`tc i wers
`at more than 20-30 frames per second(fps), the images fuse together and
`appear to be moving continuously. This is because the frame rate has
`exceeded the rate at which the visual system samples the inputsto the retina.
`NTSCvideo is 29,997 fps, film is 24 fps, and PALvideois 25 fps.
`On a 30-MIPS(millions of instructions per second) computer—the avail-
`able rate when this book was begun—there are 1 million instructions avail-
`able to update the display frame in 1/30 of a second. Although : milion
`instructions seemslike a lot, rememberthat a 640x480display (television res-
`olution) has 307,200 pixels, leaving 3.25 instructionsperpixelif every pixelis
`to be manipulated between each frame. On a 300-MIPS computer—therate in
`commonuse by the time manyof you read this book—therearestill only 32.5
`instructionsper pixel per frame. This is a serious problem for video applica-
`tions.
`For normalinteractive use, however, we do not change every pixel in every
`frame; therefore the magic numberof 30 fps for smooth motionis not required
`for mostinteractive uses. If the user wantsto drag an object across the screen,
`experiments have shownthat 5 updates per secondto the object being dragged
`are sufficient to maintain the “interactive feel.” Obviously, improving this
`updaterate up to 30 updatesper second will make the movement appear more
`smooth and natural. For dragging tasks, 5 updates per secondis the lower
`bound for acceptable interaction. This meansthat ourdisplay update process
`for dragging purposes, must complete in less than 1/5th of a second to he
`acceptable.
`For interactions that are not continuous, such as displaying a new student
`record or finding a word in a document, delaysof 1-2. seconds are acceptable
`In ae situations, weare nottrying to create a smooth movement but are
`visually moving to a new context. Such context movements on the part of
`
`3.4 Graphics Hardware
`A brief introduction t0 basic graphics
`devices
`is
`;
`i
`devices for which ourimages willbe oe PEEtaa
`
`

`

`
`
`Frame buffer architecture
`
`Display
`controller
`
`Figure 3-9
`
`
`
`
`3.4.1 Frame Buffer Architecture
`The Rene buffer, shown in Figure 3-9, is the dominant architecture for dis-
`play devices. The graphics package, whichis part of the interactive tool kit
`running in the central Processing unit (CPU), sets pixel values into the frame
`buffer memory. The framebuffer is the repository of the image thatis being
`displayed on the screen.In manycases, the CPU can read the image outof the
`frame buffer as well as modify it. Various display technologies use differing
`techniques to convert the contentsof the framebuffer into a visible image.
`
`3.4.2 Cathode Ray Tube
`The most populardisplay device is the cathode ray tube (CRT), whichis the
`basis for standard televisions. For such a device, the display controller scans
`the frame buffer memoryfrom top to bottom,left to right to retrieve pixel val-
`ues. Simultaneously with this scan of the frame buffer, an electron beam is
`scanning acrosstheface of the display in a similar pattern. The display con-
`troller modifies the intensity of this beam based on thepixel values found in
`the frame buffer. This produces an image on the phosphorof the screen. In
`most color displays, there are three beams, onefor each of the primary colors,
`red, green, and blue.
`The phosphor image decaysbasedonthepersistence of the phosphor. Ifa
`long-persistence phosphoris used, the image will not decay by the time the
`display is refreshed again. Too long a persistence means that fast-moving
`objects have ghosts of the objecttrailing behind. Ifa low-persistence phosphor
`is used, then the image will start to decay before the display controller can
`redraw it, causing the display to appearto flicker.If the display is refreshed 30
`times per second, there is a conflict between ghosting from high-peinielsnes
`phosphorsandtheflicker of low-persistence phosphors. On good displays, t Hs
`is resolved by refreshing the screen 60 times per second (60 Hz) so that the
`user cannotperceivetheflicker. On higher-quality displays, this may go up to
`75 Hz.
`
`
`
`

`

`
`
`APH
`
`LoS
`
`z
`
`62
`.
`
`3.
`
`BASIC CompPuUTER GF
`5 Bennet This resolu-
`ber of suchdispl
`ays 1
`Padiution of American SEnats By aeineoe
`The resolution of a huge
`tion is determined by the reso”
`the developmér aisclavil Good-quality
`CRT I
`sas
`a tel
`evision,
`remrinehee, than just over computer atiot 1024x768, with
`Ae ll
`Chisforcompiter work have resolutions on the at oinig felch higher
`eine in the 1200%1000 range and experimentalsyst©
`
`amortize
`
`stal Display
`4.3 Liqui
`tal displays (LCD) because they are
`3
`Liquid Cry
`iquid c
`oe kBareelo
`Mostportable computers use liqui
`n the liquid crys-
`rys
`flat and have low power consumption. By placing
`stals is changed. When
`tals, the polarization of light passing through cae Bais eitennade Gane:
`used in conjunction with polarizing filters, such cry
`pareOPAuve isgeEh ‘que
`where the circuits for con-
`assive-matrix technique
`:
`ingenscepatllreeae
`hery of the screen and the settings
`trolling the crystals are located at the peripher
`h the screen. This
`of the various pixels must be done sequentially throug
`heel
`results in a constant image withoutflicker, but the time required to change
`pixel’s color is much slower than 30 fps. Depending on how slow this timeis,
`” or disappear while
`fast-moving objects, such as cursors, may “submarine”
`oO!
`moving quickly. This is because the cursor has moved from its location before
`the display wasfully changed.
`More expensive LCDsuse an active-matrix technology that places the con-
`trol circuitry for each pixel next to the crystals that are being controlled. This
`yields higher-contrast images, much faster times to change pixels, and elimi-
`nates the submarining behaviorof cursors.
`All LCDsuse a frame buffer architecture similar to that of the CRT. The
`difference is that the display controller is controlling the opacity of crystals
`rather than the intensity of an electron beam. Similar technology is used by
`display devices that have not yet gained a wide market, such as plasmapanels
`and others.
`
`3.4.4 Hardcopy Devices
`Bey coe are only indirectly involved with the user interface. How-
`anae ° the same software techniques—andin a good software Bens n
`code—are used to generate both hardcopy and screen output The
`SEMeseomenaesaero in the frame buffer of a hardcopy
`device.
`ldth
`is a large factorin drawing on a hardcopy
`plotter. This MeeTa for hardcopy graphical output is the pen
`One ofthe ol
`;
`asec’
`onthe stroke image model, except that the coor-
`
`d
`
`3
`
`

`

`odern |
`
`’
`

`
`3.5
`ABSTRACT CANVas cLass
`=
`dinates of strok
`:
`:
`:
`h
`objects are sent to the plotter in physical coordinates. The
`lotter then
`all of the Tattybechiainatndl,Paper to draw the stroke, This process has
`Reed realistic images.
`:
`€ stroke model, including the inability to
`ficulty is sukingeanaare based on the frame buffer model. The primary dif-
`print a standard Ittapgiowware.f the frame buffer requires 3.6 megabytes to
`each pageis Prohibitive. Fy ae Communicating this much information for
`model. The most nopnlay;¢ bias reasons, laser printers generally use a region
`based on FORTH,2 whieh an nese is PostScript.! The PostScript language is
`driver software. The Believe#1 ye printer to be programmed by the print
`straight lines, and the Bdlacee ie cau are regions bounded by splines and
`initions. This methodallows rat
`s the frame buffer from these region def-
`and sophisticated images,
`very compact communication of very precise
`HtnearaonDnneey however, the region image modelis not suffi-
`Aavba Htc the Guinea os also accept pixel-based images that are then ren-
`,
`printer = frame buffer. Such images are usually much lowerin
`resolution than theprinter's resolution, which somewhat mitigates the com-
`munic

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket