Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright 2011 Cologne University of Applied Sciences Licensed under the
  * Educational Community License, Version 2.0 (the "License"); you may
  * not use this file except in compliance with the License. You may
  * obtain a copy of the License at
  * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an "AS IS"
 * or implied. See the License for the specific language governing
 * permissions and limitations under the License.
Diese Klasse implementiert eine Kamera mit perspektivischer Projektion. Aus den Vektoren für Position, Blickrichtung und "oben" wird die Projektionsmatrix bestimmt.

Robert Giacinto
public final class PerspectiveCamera extends AbstractCamera {
    private static final Logger log = LoggerFactory.getLogger(PerspectiveCamera.class);
    private double fieldOfView;
    private double aspect;
    private double near;
    private double far;

Projektionsmatrix für die Transformation in das Kamerakoordinatensystem
    private Matrix view;

Ausrichtung der Kamera
    private Quaternion rotation;
    private PerspectiveCamera(double fieldOfViewdouble aspectdouble neardouble far) {
        this. = fieldOfView;
        this. = aspect;
        this. = near;
        this. = far;
    public void setLens(double focalLengthdouble height) {
         = 2 * Math.atan(height / (focalLength * 2)) * (180 / .);
    public Matrix getProjectionMatrix() {
        return ;
    public CVPoint getClippingSpaceCoordinates(Vector3d vector3d) {
        Matrix point = .times(vector3d.toMatrix());
        return new CVPoint(point.get(0, 0) / point.get(3, 0), point.get(1, 0) / point.get(3, 0),1);
    public void update() {
         =  / ;
         = Matrix.getPerspective();
    public Pixel getImageSpaceCoordinates(Vector3d vector3d) {
        throw new UnsupportedOperationException("Not supported yet.");
New to GrepCode? Check out our FAQ X