Added custom readme with class diagram
This commit is contained in:
parent
be719d379c
commit
a728cf3131
1 changed files with 89 additions and 0 deletions
89
implemented_readme.adoc
Normal file
89
implemented_readme.adoc
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
= Things about the completed assignment:
|
||||||
|
|
||||||
|
== Class Diagram:
|
||||||
|
[plantuml]
|
||||||
|
----
|
||||||
|
@startuml
|
||||||
|
|
||||||
|
abstract class Shape {
|
||||||
|
# static int _nextId
|
||||||
|
# const double DefaultLineThickness
|
||||||
|
+ int Id { get }
|
||||||
|
# Point Position
|
||||||
|
# Point Scale
|
||||||
|
# double? LineThickness
|
||||||
|
# IBrush? LineColor
|
||||||
|
# IBrush? FillColor
|
||||||
|
# Shape(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ {abstract} bool DrawSelf(Point, Point, double?, IBrush?, IBrush? )
|
||||||
|
+ {abstract} bool PointInShape(Point mousePoint)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Square {
|
||||||
|
- const int SideLengthMin
|
||||||
|
- const int SideLengthMax
|
||||||
|
+ Square(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool DrawSelf(Point, Point scale, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool PointInShape(Point)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Rectangle {
|
||||||
|
- const int SideLengthMin
|
||||||
|
- const int SideLengthMax
|
||||||
|
+ Rectangle(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool DrawSelf(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool PointInShape(Point)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Circle {
|
||||||
|
- const int RadiusMin
|
||||||
|
- const int RadiusMax
|
||||||
|
+ Circle(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool DrawSelf(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool PointInShape(Point)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Triangle {
|
||||||
|
- const int SideLengthMin
|
||||||
|
- const int SideLengthMax
|
||||||
|
+ Triangle(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool DrawSelf(Point, Point, double?, IBrush?, IBrush?)
|
||||||
|
+ override bool PointInShape(Point)
|
||||||
|
- static Point[] CalculateTriangleVertices(Point, double)
|
||||||
|
- static bool IsPointInTriangle(Point, Point, Point, Point)
|
||||||
|
}
|
||||||
|
|
||||||
|
class ShapeGenerator {
|
||||||
|
- double _maxX
|
||||||
|
- double _maxY
|
||||||
|
- int _nextShape
|
||||||
|
- Random _random
|
||||||
|
- const int MinShapeIdx
|
||||||
|
- const int MaxShapeIdx
|
||||||
|
- static readonly IBrush[] colors
|
||||||
|
+ ShapeGenerator(double, double)
|
||||||
|
+ Shape CreateNewShape(Point)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Program {
|
||||||
|
- List<Shape> shapes
|
||||||
|
- ShapeGenerator generator
|
||||||
|
+ void Run()
|
||||||
|
+ void HandleClick(ClickEvent)
|
||||||
|
+ void Redraw()
|
||||||
|
}
|
||||||
|
|
||||||
|
Shape <|-- Square
|
||||||
|
Shape <|-- Rectangle
|
||||||
|
Shape <|-- Circle
|
||||||
|
Shape <|-- Triangle
|
||||||
|
ShapeGenerator ..> Shape : creates >
|
||||||
|
Program o-- ShapeGenerator
|
||||||
|
Program o-- "*" Shape : contains >
|
||||||
|
|
||||||
|
@enduml
|
||||||
|
----
|
||||||
|
|
||||||
|
== Side notes:
|
||||||
|
|
||||||
|
- Feature: When it attempts to create a new shape out of the bounds of the canvas, it fails and notifies the user
|
||||||
Loading…
Add table
Add a link
Reference in a new issue