import Foundation
func areaTriangulo(_ p1: Punto, _ p2: Punto, _ p3: Punto) -> Double {
    let det = p1.x * (p2.y - p3.y) + p2.x * (p3.y - p1.y) + p3.x * (p1.y - p2.y)
    return abs(det)/2
}
struct Punto{
    var x = 0.0, y = 0.0
}
struct Tamaño{
    var alto = 0.0, largo = 0.0
}
struct Figura{
    var origen : Punto
    var tamaño : Tamaño
    var area: Double{
        return tamaño.alto*tamaño.largo
    }
    var centro: Punto{
        get{
            let centrox = origen.x+ (tamño.ancho/2)
            let centroy = origen.y+ (tamño.alto/2)
            return = Punto(x: centrox, y: centroy)
        }
        set{
            let origen.x = newValue.x + (tamño.ancho/2)
            let origen.y = newValue.y + (tamño.alto/2)
        }
    }
    init (origen: Punto, tamaño: Tamaño){
        self.origen = origen
        self.tamaño= tamaño
    }
}
struct Cuadrilatero :Figura{
    var p1 : Punto
    var p2 : Punto
    var p3 : Punto
    var p4 : Punto
    override var centro :Punto {
        set{
            let incX = newValue.x + centro.x
            let incY = newValue.y + centro.y
            super.centro = newValue
            p1 = Punto(x: p1.x + incX, y: p1.y + incY)
            p2 = Punto(x: p2.x + incX, y: p2.y + incY)
            p3 = Punto(x: p3.x + incX, y: p3.y + incY)
            p4 = Punto(x: p4.x + incX, y: p4.y + incY)
        }
        get{
            super.centro
        }
    }
    override var area: Double{
        return areaTriangulo(p1 + p2 + p3) + areaTriangulo(p1 + p3 + p4)
    }
    init (p1: Punto, p2: Punto, p3: Punto, p4: Punto){
        self.p1 = p1
        self.p2 = p2
        self.p3 = p3
        self.p4 = p4
        let miny = min(p1.x, p2.x, p3.x, p4.x)
        let minx = min(p1.y, p2.y, p3.y, p4.y)
        let maxy = max(p1.x, p2.x, p3.x, p4.x)
        let maxx = max(p1.y, p2.y, p3.y, p4.y)
        let alto = maxy -miny
        let ancho = maxx - minx
        super.innit(origen: Punto(x : minx, y: miny), tamaño: Tamaño(ancho: ancho, alto: alto))
    }
}
struct Circle: Figura{
    var radio : Double = 0
    var area : Double{
        get{
            Double.pi*radio*radio
        }
        set{
            
        }
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: