В текущей версии Java управление версиями библиотеки является довольно покрытым шерстью термином, который полагается на JAR, упаковываемый правильно с полезной декларацией. Даже тогда это - большая работа для запущенного приложения для сбора этой информации вместе полезным способом. Время выполнения JVM не дает Вам справки вообще.
я думаю, что Ваш лучший выбор состоит в том, чтобы осуществить это во время изготовления, с помощью инструментов управления зависимости как Ivy или Maven для выборки правильных версий всего.
Интересно, Java 7 будет, вероятно, включать надлежащую платформу управления версиями модуля для точно этого вида вещи. Не то, чтобы это помогает Вам прямо в данный момент,
Я не буду давать вам программу для этого, но вот как вы можете это сделать:
Точка A всегда находится за пределами прямоугольника, а точка B всегда находится в центре прямоугольника
Предполагая, что прямоугольник выровнен по оси, это упрощает задачу:
Наклон линия s = (Ay - By) / (Ax - Bx).
Как только вы узнаете, какое ребро оно пересекает, вы знаете одну координату: x = Bx ± w / 2 или y = By ± h / 2 в зависимости от того, в какую кромку вы попали. Другая координата задается формулой y = By + s * w / 2 или x = Bx + (h / 2) / s.
Возможно, вы захотите ознакомиться с Graphics Gems - это классический набор процедур для графики, включающий многие из требуемых алгоритмов. Несмотря на то, что он написан на C и немного устарел, алгоритмы все еще блестят, и перевод на другие языки должен быть тривиальным.
Для вашей текущей задачи просто создайте четыре линии для прямоугольника и посмотрите, какие из них пересекают данную линию.
Я не Я не знаю, лучший ли это способ, но вы могли бы вычислить пропорцию линии, которая находится внутри прямоугольника. Вы можете получить это из ширины прямоугольника и разницы между координатами x A и B (или координатами высоты и y; в зависимости от ширины и высоты вы можете проверить, какой вариант применяется, а другой случай будет на расширении стороны прямоугольника). Когда у вас есть это,