this assignment needs to be written in Eiffel programming language.
Write an application with the following specification.
--It should contain a class RECTANGLE with 8 floating point members (DOUBLE) x1,y1,x2,y2,x3,y3,x4,y4 indicating co-ordinates of 4 corner points in a clock-wise fashion.
--There should be at least 3 class methods named scale(scale factor), translate(x,y) and rotate(degree).
-- The application should always initialize the rectangle with following co-ordinates (0,0), (0,1), (2,1), (2,0).
-- The application should ask the user input in the following fashion in an infinite loop.
(1) Scale (2) Translate (3) Rotate (4) Quit. Your choice :
Upon user entering a number between 1 to 4, it should ask further input (such as scale factor for scaling (from 0.1 to 10 only), (x,y) co-ordinates for translation and degree (0 to 360) for rotation ) if required.
-- After every transformation (scale/translate/rotate), print the values of co-ordinates in a single line in the following format:
(x1,y1) (x2,y2) (x3,y3) (x4,y4)
-- The line asking for user choice should be the next line (NOT on the same line as the co-ordinates).
-- Note that after some operations, it is possible that x1 > x4. DO NOT sort the co-ordinates.
-- Keep in mind that floating point arithmetic is not commutative. Do not compare two floating point numbers for equality. Compare to see if they are within [url removed, login to view] distance of each other.
-- Rotation is always performed with respect to (x1,y1). That is, during a rotation (x1,y1) remains fixed. Similarly, (x1,y1) remains fixed during scaling operation as well.
-- Please annotate the program with appropriate pre-conditions, post-conditions and invariants.