Hola de nuevo, si no quiere usarse una interfaz gráfica, puedes trabajarlo todo nada más que de forma abstracta y con base matemática. Digamos que todo será definido matemáticamente y no habrá nada visual. Esto es algo interesante de cara al aprendizaje, aunque puede resultar bastante tedioso sobre todo para quienes no tengan la base matemática suficiente.
Un planteamiento que se me ocurre es el siguiente: defines una clase Punto que conste de dos atributos enteros, coordenadaX y coordenadaY.
Los puntos te servirán para referenciar posiciones de cualquier elemento del sistema. Ahora tendrás que pensar que todo lo que trabajes estará sobre unos ejes de coordenadas donde tu punto de referencia será el (0,0)
Defines una clase denominada Plano (realmente preferiría llamarla AreaDeTrabajo, ya que no va a darse la definición matemática de un plano sino de un área).
En la clase AreaDeTrabajo tendríamos como atributos dos puntos: Punto coordenadasOrigen y Punto coordenadasFin
Para coordenadasOrigen defines como atributos coordenadaX = 0 y coordenadaY = 0
Para coordenadasFin defines como atributos coordenadaX = 100 y coordenadaY = 100
De este modo ya tienes definido el plano o área de trabajo.
Lo siguiente sería por ejemplo definir la clase Triangulo. Dentro de esta clase tendrías tres atributos Punto, uno para cada vértice del triángulo, por ejemplo Punto vertice1, Punto vertice2, Punto vertice3.
Definiendo coordenadas para los vértices ya tienes definido el triángulo. Un ejemplo sería:
Para vertice1: coordenadaX = 0 y coordenadaY = 0
Para vertice2: coordenadaX = 20 y coordenadaY = 0
Para vertice3: coordenadaX = 10 y coordenadaY = 10
Fíjate que con estos valores ya puedes determinar si el triángulo está dentro del plano o área de trabajo, por ejemplo un triángulo que tuviera estos datos
Para vertice1: coordenadaX = 0 y coordenadaY = 0
Para vertice2: coordenadaX = 200 y coordenadaY = 0
Para vertice3: coordenadaX = 10 y coordenadaY = 10
No sería válido, ya que ningún valor de coordenada puede situarse fuera del límite definido por el plano o área de trabajo.
Todo esto se podría dibujar, pero igualmente se puede trabajar sin dibujarlo simplemente usando clases y análisis matemático.
Ahora dentro de la clase triángulo necesitas añadir los métodos oportunos (además de los getters y setters), por ejemplo un método calcularArea.
Para calcular el área necesitas saber cuál es la base y cuál es la altura del triángulo. La base es el lado del triángulo de mayor longitud. Tendrías que calcular la distanciaVertice1_Vertice2, la distanciaVertice1_Vertice3 y la distanciaVertice2_Vertice3.
La distancia puede calcularse de varias maneras, una de ellas basándonos en vectores. Dado un vector definido por dos puntos A(x, y) y otro B(x', y') la distancia es el módulo del vector sqr ((x'-x)^2+ (y'-y)^2), esto es simplemente el teorema de pitágoras aplicado a un triángulo rectángulo definido por los puntos A y B.
Una vez calculadas las tres distancias, la mayor de ellas será la base del triángulo.
Ahora necesitas la altura. La altura puedes calcularla como la recta perpendicular a la base que pasa por el vértice que no está en la base del triángulo.
Con la base y la altura puedes calcular el área.
Esto seguramente se pueda hacer de otras maneras o plantearlo de forma más simple, yo he puesto lo que se me ha ocurrido pensándolo rápido. A lo mejor te puedes apoyar en clases del api de java que lo simplifiquen todo. A lo mejor puedes usar la clase Area del api java ¿?
Para el ejemplo anterior, tendríamos que area = base * altura / 2
Para vertice1: coordenadaX = 0 y coordenadaY = 0
Para vertice2: coordenadaX = 20 y coordenadaY = 0
Para vertice3: coordenadaX = 10 y coordenadaY = 10
Nuestra base es 20 y nuestra altura 10, nuestra área sería (20*10)/2 = 200/2 = 100
De este modo se iría resolviendo todo: matemáticamente.
Todo esto son ideas, lo que te recomiendo es que pienses primero cómo plantearlo y luego vayas paso por paso, crea una clase, sus métodos y pruébalo bien antes de pasar a crear otra clase.
Si vas pegando el código que vayas generando intentaremos echar una mano
Salu2