У меня есть точка A, B и ширина CD (A»= A). Если пользователь переместит точку B в B'how, я смогу знать координаты точек C 'D'. Я был бы очень признателен, если бы кто-то написал метод в java с 3 входными параметрами (A, B и шириной CD), которые выводят координаты C 'и D'. В качестве вознаграждения я могу заплатить 50 $ через Paypal.
ответ
фона:
Во-первых, если я правильно понимаю, задача на самом деле «даны координаты А и В, найти координаты C и D, если известно, что АВ и CD перпендикулярны, и мы знаем, длина CD»
Для вычисления координат, мы используем 3 основные математические уравнения:
линия от 2 точек A, B:
y = (x - B.x)* (A.y - B.y)/(A.x - B.x) + B.y
Если мы устанавливаем
m = (A.y - B.y)/(A.x - B.x)
Уравнение из 2 точек A, B будут: y = m * (x - B.x) + B.y
- линия, перпендикулярная с линией выше (CD):
y = (-1/m) * x + y0
Поскольку CD проходит через A, уравнение можно записать в виде: y = (-1/m) * (x - A.x) + A.y
- Длина (d) между 2 точками A, C:
d * d = (C.x - A.x) * (C.x - A.x) + (C.y - A.y) * (C.y - A.y)
Из уравнения CD, мы знаем C.y = (-1/m)*(C.x - A.x) + A.y
Поэтому: d*d = (C.x - A.x)*(C.x - A.x) + (1/(m*m))*(C.x - A.x)* (C.x - A.x)
легко узнать, что C.x - A.x = (+|-) (m*d)/Math.sqrt(m*m + 1)
В java, я думаю, вы можете написать функцию
public Point[] findCD(Point A, Point B, int widthCD) {
if (A.x == B.x) {
return [new Point(A.x - widthCD/2, A.y), new Point(A.x + widthCD/2, A.y)]
}
if (A.y == B.y) {
return [new Point(A.x, A.y - widthCD/2), new Point(A.x, A.y + widthCD/2)]
}
var m = (A.y - B.y)/(A.x - B.x);
var xC = A.x - m*widthCD/(2 * Math.sqrt(m*m + 1));
var xD = A.x + m*widthCD/(2 * Math.sqrt(m*m + 1));
var yC = (A.x - xC)/m + A.y;
var yD = (A.x - xD)/m + A.y;
return [new Point(xC, yC), new Point(xD, yD)];
}
Примечание: У меня нет Java, пожалуйста, поправьте, если я пишу указатель или массив неправильно
Спасибо, он должен быть +, а не. Я отредактировал его. –
- 1. Вращение точек Three.js
- 2. Вращение на основе конечных точек
- 3. Вращение Несколько точек внутри прямоугольника
- 4. Вращение точек траектории SVG для лучшего морфинга
- 5. Вращение зрения в android-gpuimage
- 6. Вращение RelativeLayout в Android 2.3
- 7. Вращение вида в openGLES android
- 8. Вращение Android после startActivityForResult
- 9. Android 1.6 Вращение камеры?
- 10. Вращение экрана Android ViewPager
- 11. Вращение экрана блокировки Android
- 12. Android ProgressDialog прекращает вращение
- 13. вращение устройства Android
- 14. Android - вращение аннотации ахартэнгина
- 15. вращение Android-экран обнаружения
- 16. растрового Android программирования вращение
- 17. Вертикальное вращение сенсора Android
- 18. Android Camera2 Неверное вращение
- 19. Вращение экрана Android, ACCELEROMETER_ROTATION
- 20. Вращение вокруг 2 точек в то же время
- 21. Вращение, масштабирование и перевод 2d точек в GLM
- 22. Положение и вращение точки относительно двух других точек
- 23. Как вычислить (приблизительное) вращение списка точек (x, y)
- 24. Android - вращение отключает углы формы
- 25. Инструментарий Android GoogleVR медленное вращение
- 26. Вращение датчика Android до градусов
- 27. Вращение экрана Android ... сохранить состояние
- 28. Android Вращение анимация от оси
- 29. Учитывая набор точек, как рассчитать преобразование подобия (перевод, масштаб, вращение)?
- 30. Вращение RectF на холсте Android
Попробуйте Fiverr или Upwork. Это сайт вопросов и ответов для профессиональных программистов! – OBX
Привет. Я сам программист. Мне нужна помощь в этой задаче. – Jumper
Являются ли они в 2D или 3D координатах? –