Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

using the code below design: - getPerimeter() for Poligono(polygon) class - getArea() for Triangulo(triangle) class - displayStringInside() for Triangulo(triangle) class will print a string inside

using the code below design:

- getPerimeter() for Poligono(polygon) class

- getArea() for Triangulo(triangle) class

- displayStringInside() for Triangulo(triangle) class will print a string inside the triangle

- getArea() for Rectangulo(rectangle) class

-displayStringInside() for Rectangulo(rectangle) class will print a string inside the rectangle

- Demostrate that the new methods created work.

Questions:

1-explain how Cuadrado(square) constructor works. how it assign the coordinates for the vertex correctly since it only receives arguments for the coordinates of top left and weight of the square?

import javax.swing.JFrame; import javax.swing.JComponent; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; public class Herencia { public static void main (String args[]) { JFrame marco = new JFrame(); marco.setSize(640, 480); marco.setTitle("Primitivos Grficos"); marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); marco.setVisible(true); GraphicComponent grafico = new GraphicComponent(); marco.add(grafico); } } class GraphicComponent extends JComponent { public void paintComponent(Graphics g) { Poligono miPoligono = new Poligono(5, 40, 25); miPoligono.setCoordForOneVertex(0,20,40); miPoligono.setCoordForOneVertex(1,60,40); miPoligono.setCoordForOneVertex(2,60,10); miPoligono.setCoordForOneVertex(3,20,10); miPoligono.setCoordForOneVertex(4,30,30); miPoligono.moveDown(100); miPoligono.draw(g); Triangulo triangle1 = new Triangulo(10,10,30,50,40,20,25,30); triangle1.draw(g); Rectangulo rectangle1= new Rectangulo(80,60,140,80); rectangle1.draw(g); g.setColor(Color.BLUE); rectangle1.grow(2); rectangle1.draw(g); g.drawString("Ejemplo de cmo dibujar un string", 10, 160); } } class Poligono { double x[], //contains x coordinate for vertices y[], //contains y coordinate for vertices xc, //(xc,yc) = figure's center or yc; //reference point int totalPoints; //number of vertices //Given method: Explain function Poligono() { } Poligono(int totalPoints, double xc, double yc) { this.totalPoints = totalPoints; x = new double[totalPoints]; y = new double[totalPoints]; this.xc = xc; this.yc = yc; } void setCenterCoords(double xc, double yc) { this.xc = xc; this.yc = yc; } void setCoordForOneVertex(int index, double x, double y) { if ((index < totalPoints)&& (index >= 0)) { this.x[index] = x; this.y[index] = y; } } void grow(double factor) { int i; for (i = 0; i < totalPoints; i++) { x[i] = (x[i] - xc) * factor + xc; y[i] = (y[i] - yc) * factor + yc; } } //New method: TO DO double getPerimeter() { double perimeter = 0; { //requires the code to calculate the perimeter } return (perimeter); } void moveDown(double displacement) { for (int i = 0; i < totalPoints; i++) { y[i] = y[i] + displacement; } yc = yc + displacement; } void draw(Graphics g) { Graphics2D g2 = (Graphics2D) g; int i; Line2D.Double linea = new Line2D.Double(150, 200, 200, 240); for (i = 0; i < totalPoints - 1; i++) { linea = new Line2D.Double(x[i], y[i], x[i+1], y[i+1]); g2.draw(linea); } linea = new Line2D.Double(x[0], y[0], x[totalPoints - 1], y[totalPoints - 1]); g2.draw(linea); } } class Triangulo extends Poligono { Triangulo(double x1, double y1, double x2, double y2, double x3, double y3, double xc, double yc) { super(3,xc,yc); setCoordForOneVertex(0, x1, y1); setCoordForOneVertex(1, x2, y2); setCoordForOneVertex(2, x3, y3); } //New method: TO DO double getArea() { double area = 0.0; { //requires code to calculate area } return (area); } //New method: TO DO void displayStringInside(String theString) { //requires code to display theString centralized //within the figure } } class Rectangulo extends Poligono { //New: Given constructor Rectangulo () { super(4,0.0,0.0); } Rectangulo (double x1, double y1, double x2, double y2) { super(4,0.0,0.0); double midX, midY; midX = (x1 + x2)/2.0; midY = (y1 + y2)/2.0; setCenterCoords(midX,midY); setCoordForOneVertex(0, x1, y1); setCoordForOneVertex(1, x2, y1); setCoordForOneVertex(2, x2, y2); setCoordForOneVertex(3, x1, y2); } //New method: TO DO double getArea() { double area = 0.0; { //requires code to calculate area } return (area); } //New method: TO DO void displayStringInside(String theString) { //requires code to display theString centralized //within the figure } } //*** New class: Given and to be Explained class Cuadrado extends Rectangulo { Cuadrado (double x1, double y1, double width) { super(x1,y1,x1+width,y1+width); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

Asnwer Code include include using namespace std class GeometricObject public GeometricObject color w... blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Introduction To Java Programming And Data Structures Comprehensive Version

Authors: Y. Daniel Liang

12th Edition

0136520235, 978-0136520238

More Books

Students also viewed these Programming questions

Question

When is the application deadline?

Answered: 1 week ago