Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cz.muni.fi.pb162.project.geometry;
- /**
- * Created by xmlynar1 on 6.10.15.
- */
- public class Triangle {
- private Vertex2D VertexA, VertexB, VertexC; //Vrcholy trojuholnika
- private Triangle TriA, TriB, TriC; //Trojuholniky pri vrcholoch po rozdeleni
- public Vertex2D getVertexA() {
- return VertexA;
- }
- public void setVertexA(Vertex2D vertexA) {
- VertexA = vertexA;
- }
- public Vertex2D getVertexB() {
- return VertexB;
- }
- public void setVertexB(Vertex2D vertexB) {
- VertexB = vertexB;
- }
- public Vertex2D getVertexC() {
- return VertexC;
- }
- public void setVertexC(Vertex2D vertexC) {
- VertexC = vertexC;
- }
- @Override
- public String toString() {
- return "Triangle: vertices="+VertexA+" "+VertexB+" "+VertexC;
- }
- public boolean isDivided(){
- return (TriA != null);
- }
- public Triangle getSubTriangle(int i){
- switch (i){
- case 0:
- return TriA;
- case 1:
- return TriB;
- case 2:
- return TriC;
- default:
- return null;
- }
- }
- private Vertex2D countSplitPoint(Vertex2D a, Vertex2D b){
- Vertex2D result = new Vertex2D();
- result.setX((a.getX() + b.getX()) / 2.0);
- result.setY((a.getY() + b.getY()) / 2.0);
- return result;
- }
- public boolean divide() {
- if(isDivided()){
- return false;
- }
- else {
- TriA = new Triangle();
- TriB = new Triangle();
- TriC = new Triangle();
- Vertex2D s1 = countSplitPoint(VertexA, VertexB);
- Vertex2D s2 = countSplitPoint(VertexB, VertexC);
- Vertex2D s3 = countSplitPoint(VertexC, VertexA);
- TriA.setVertexA(s1);
- TriA.setVertexB(VertexA);
- TriA.setVertexC(s3);
- TriB.setVertexA(s1);
- TriB.setVertexB(VertexB);
- TriB.setVertexC(s2);
- TriC.setVertexA(s2);
- TriC.setVertexB(VertexC);
- TriC.setVertexC(s3);
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement