Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2010, 04:22   #1
grimm_jow
Пользователь
 
Регистрация: 27.01.2010
Сообщений: 25
Вопрос Уголы треугольника

Имееется треугольник заданный 3-мя точьками, площадь и длины сторон посчитаны, небходимо найти углы между сторонами... как это сделать ?


Код:


public class Tri {
	
	public static void main(String[] args) {
		
	
		Point p1 = new Point(6,9);
		Point p2 = new Point(2,5);
		Point p3 = new Point(4,1);
		Tr trig = new Tr(p1,p2,p3);
		
		System.out.println(trig.getAB());
		System.out.println(trig.getBC());
		System.out.println(trig.getAC());
		System.out.println("Площадь треугольника"+" "+trig.getArea());
		System.out.println("Полупуриметр"+" "+trig.getHalfPerim());
		
	}

}


class Tr
{	
	protected Point a,b,c;
	
	public Tr (Point A, Point B, Point C)
	{
		a=A;
		b=B;
		c=C;
	}

	public double getAB(){
		
		int dx = a.getX() - b.getX(); // -c.getX();
		int dy = a.getY() - b.getY(); // -c.getX();
		return Math.sqrt(dx*dx+dy*dy);
		
		
	}
	
	public double getBC(){
	
		int dx =  b.getX() -c.getX();
		int dy =  b.getY() -c.getY();
		
		return Math.sqrt(dx*dx+dy*dy);
		
	}	
	
	public double getAC(){
		
		int dx = a.getX() -c.getX();
		int dy = a.getY() -c.getY();
		
		return Math.sqrt(dx*dx+dy*dy);
		
		
	}
	
	public double getHalfPerim(){
		
		return (getAB()+getBC()+getAC())/2.0;
		
	}
	
	public double getArea(){
		
	double p = getHalfPerim();
	return Math.sqrt( p*(p-getAB())*(p-getBC())*(p-getAC()) );
		
		
	}
	
	public double Ugli(){
		
	// вот как бэ да...
		
		
	}

	
	
}// Tr
grimm_jow вне форума Ответить с цитированием
Старый 26.06.2010, 09:29   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

каждая сторона треугольника лежит на определенной прямой.... прямая задается двумя точками (соответсвующие вершины треугольника)... а найти формулу нахождения угла между прямыми думаю сможешь...
BleStaR вне форума Ответить с цитированием
Старый 26.06.2010, 13:07   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Теорема синусов.
Levsha100 вне форума Ответить с цитированием
Старый 13.07.2010, 18:20   #4
TanT
 
Аватар для TanT
 
Регистрация: 28.02.2010
Сообщений: 3
По умолчанию

Размялся

Код:
/**
 * Tri.java
 */
package tr;

import java.awt.Point;

public class Tri {
    
    public static void main(String[] args) {
        
    
     //   Point p1 = new Point(6,9);
     //   Point p2 = new Point(2,5);
    //    Point p3 = new Point(4,1);
        
        Point p1 = new Point(1,1);
        Point p2 = new Point(1,4);
        Point p3 = new Point(4,1);
        
        Tr trig = new Tr(p1,p2,p3);
        
        System.out.println(trig.getAB());
        System.out.println(trig.getBC());
        System.out.println(trig.getAC());
        System.out.println("Площадь треугольника"+" "+trig.getArea());
        System.out.println("Полупуриметр"+" "+trig.getHalfPerim());
        
        System.out.println("Угол ABC"+" " + trig.angle(trig.getAC(), trig.getBC(), trig.getAB()));
        
        System.out.println("Полупуриметр"+" "+trig.getHalfPerim());
        
    }       
}




class Tr
{   
    protected Point a,b,c;
    
    public Tr (Point A, Point B, Point C)
    {
        a=A;
        b=B;
        c=C;
    }

    public double getAB(){
        
        double dx = a.getX() - b.getX(); // -c.getX();
        double dy = a.getY() - b.getY(); // -c.getX();
        return Math.sqrt(dx*dx+dy*dy);
        
        
    }
    
    public double getBC(){
    
        double dx =  b.getX() -c.getX();
        double dy =  b.getY() -c.getY();
        
        return Math.sqrt(dx*dx+dy*dy);
        
    }   
    
    public double getAC(){
        
        double dx = a.getX() -c.getX();
        double dy = a.getY() -c.getY();
        
        return Math.sqrt(dx*dx+dy*dy);
        
        
    }
    
    public double getHalfPerim(){
        
        return (getAB()+getBC()+getAC())/2.0;
        
    }
    
    public double getArea(){
        
    double p = getHalfPerim();
    return Math.sqrt( p*(p-getAB())*(p-getBC())*(p-getAC()) );
    }    
    
    /**
     * Возвращает угол в градусах, лежащий напротив стороны oppositeLeg
     * 
     * !!! проверки на вводимые значения нет !!!
     * 
     * @param oppositeLeg сторона, лежащая против получаемого угла
     * @param adjacentLeg1 смежная с углом сторона раз
     * @param adjacentLeg2 смежная с углом сторона два
     * @return угол
     */
    public double angle(final double  oppositeLeg, final double  adjacentLeg1, final double  adjacentLeg2) {        
        return Math.toDegrees(Math.acos((adjacentLeg1*adjacentLeg1 + adjacentLeg2*adjacentLeg2 - oppositeLeg*oppositeLeg)
        /2/adjacentLeg2/adjacentLeg1));
    }

}// Tr
TanT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение треугольника blackbanny Общие вопросы C/C++ 1 13.10.2009 13:42
3 отрезка и 3 треугольника Айдар Помощь студентам 8 10.09.2009 22:45
ориентация треугольника Orodret Общие вопросы C/C++ 11 09.06.2009 02:10
вращение треугольника в С++ bum90 Помощь студентам 3 28.04.2009 15:28