# Combining Aiming and Getting in Range The following example is from the PhotonLib example repository ([Java](https://github.com/PhotonVision/photonvision/tree/master/photonlib-java-examples/aimandrange)/[C++](https://github.com/PhotonVision/photonvision/tree/master/photonlib-cpp-examples/aimandrange)). ## Knowledge and Equipment Needed - Everything required in {ref}`Aiming at a Target `. ## Code Now that you know how to aim toward the AprilTag, let's also drive the correct distance from the AprilTag. To do this, we'll use the *pitch* of the target in the camera image and trigonometry to figure out how far away the robot is from the AprilTag. Then, like before, we'll use the P term of a PID controller to drive the robot to the correct distance. ```{eval-rst} .. tab-set:: .. tab-item:: Java .. rli:: https://raw.githubusercontent.com/gerth2/photonvision/adb3098fbe0cdbc1a378c6d5a41126dd1d6d6955/photonlib-java-examples/aimandrange/src/main/java/frc/robot/Robot.java :language: java :lines: 84-131 :linenos: :lineno-start: 84 .. tab-item:: C++ (Header) .. rli:: https://raw.githubusercontent.com/gerth2/photonvision/adb3098fbe0cdbc1a378c6d5a41126dd1d6d6955/photonlib-cpp-examples/aimandrange/src/main/include/Robot.h :language: c++ :lines: 25-63 :linenos: :lineno-start: 25 .. tab-item:: C++ (Source) .. rli:: https://raw.githubusercontent.com/gerth2/photonvision/adb3098fbe0cdbc1a378c6d5a41126dd1d6d6955/photonlib-cpp-examples/aimandrange/src/main/cpp/Robot.cpp :language: c++ :lines: 58-107 :linenos: :lineno-start: 58 .. tab-item:: Python .. rli:: https://raw.githubusercontent.com/gerth2/photonvision/adb3098fbe0cdbc1a378c6d5a41126dd1d6d6955/photonlib-python-examples/aimandrange/robot.py :language: python :lines: 44-98 :linenos: :lineno-start: 44 ```