27
Graphics and Visualization Yuriy Tymchuk (almost) Alain Plantec Guillaume Larcheveque

PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

  • Upload
    pharo

  • View
    317

  • Download
    1

Embed Size (px)

Citation preview

Page 1: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Graphics and Visualization

Yuriy Tymchuk (almost) Alain Plantec

Guillaume Larcheveque

Page 2: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

What are Athens?

Page 3: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 4: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 5: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 6: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

aCanvas createPath: [:builder | builder absolute; moveTo: 70@100; lineTo: 330@100; cwArcTo: 350@120 angle: 90 degreesToRadians; lineTo: 350@280; cwArcTo: 330@300 angle: 90 degreesToRadians; lineTo: 70@300; cwArcTo: 50@280 angle: 90 degreesToRadians; lineTo: 50@120; cwArcTo: 70@100 angle: 90 degreesToRadians

Page 7: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

p := aCanvas createPath:[ :b | b moveTo: [email protected] ; lineTo: 0.4@0; curveVia: 0.1@0 to: [email protected]; lineTo: [email protected]; curveVia: [email protected] to: [email protected]; lineTo: -0.4@0; curveVia: -0.1@0 to: ([email protected]) negated; lineTo: [email protected] negated ; curveVia: [email protected] negated to: [email protected] negated ]. aCanvas setPaint: self coloredCarColor; drawShape: p. stroke := aCanvas setStrokePaint: self wheelColor. stroke width: 0.01. aCanvas draw. wheel := aCanvas createPath:[ :b | b moveTo: [email protected]; cwArcTo: 0.15@0 angle: Float halfPi; moveTo: 0.1@0; cwArcTo: 0.15@0 angle: Float halfPi; moveTo: [email protected]; cwArcTo: 0.15 negated@0 angle: Float halfPi; moveTo: -0.1@0; cwArcTo: 0.15 negated@0 angle: Float halfPi ]. aCanvas setPaint: self wheelColor; drawShape: wheel. decorator := aCanvas createPath:[ :b | b moveTo: [email protected]; lineTo: 0.225@0 ; cwArcTo: 0.15@0 angle: Float halfPi; lineTo: 0.225@0; lineTo: [email protected] ; lineTo: -0.225@ 0; cwArcTo: -0.15@0 angle: Float halfPi; lineTo: -0.225@ 0 ; lineTo: [email protected] negated].

stroke := aCanvas setStrokePaint: self chasisDecoratorColor. stroke width: 0.01. aCanvas drawShape: decorator. aCanvas setPaint: self chasisLineColor. aCanvas draw.

Page 8: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 9: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

http://agilevisualization.com

Page 10: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Athens

Trachel

Roassal

Amber stuff?

Page 11: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Trachel

Page 12: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Roassal

Page 13: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 14: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 15: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 16: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 17: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk
Page 18: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Nicolas Lusa Michele Lanza

Page 19: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Nicolas Lusa Michele Lanza

Arc de Triomphe

Champs-Élysées

Page 20: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

ViDI

http://vidi.inf.usi.ch

Page 21: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

BlocA new 2D graphics framework for Pharo

Page 22: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Bloc

• a new Morph hierarchy

• a new event framework

• new layout strategies

• a new Halo framework

• new World management

• new widgets

Bloc = new Morphic implementation + OSWindows + Athens + TxtText

Page 23: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

New Morph hierarchyBlView for the rendering

BlMorph for events management

Page 24: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Less Morph subclassesA Morph is associated with a View

A View can be a composite

Page 25: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

New layout strategiesAnchors, Box, Border, Stack

Page 26: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

An more to come: We are ready to build new widgets

Stay tuned!

Page 27: PharoDAYS 2015: Graphics and Visualization by Yuriy Tymchuk

Telescope