Package eas.math.geometry

Examples of eas.math.geometry.Vector2D


    public double getAgentAngle(final int agentID) {
        return this.agentAngles.get(agentID) + this.sceneAngle;
    }
   
    public Vector2D getAgentScale(final int agentID) {
        Vector2D agentScale = this.agentScales.get(agentID);
        Vector2D completeScale = new Vector2D(
                this.sceneScale.x,
                this.sceneScale.y);
        completeScale.x *= agentScale.x;
        completeScale.y *= agentScale.y;
        return completeScale;
View Full Code Here


                scene.removeAgent(rand.nextInt(4));
                scene.addCollidingAgent(
                        new JebensAgent(0, null, params),
                        scene.getBoundingBox().middle(),
                        0,
                        new Vector2D(1, 1));
                scene.translateScene(new Vector2D(750 * i, 750 * j));
                sceneComplete.addScene(scene);
            }
        }
        boundThis = sceneComplete.getBoundingBox();
        Vector2D middleOfThis;
        if (boundThis != null) {
            middleOfThis = boundThis.middle();
        } else {
            middleOfThis = new Vector2D(0, 0);
        }
        middleOfThis.mult(-1);
        sceneComplete.translateScene(middleOfThis);

        scene = new ObstacleScene(params);
        factor = numberOfGridsPerDir * 1.77
                    + (0.3d - 0.3d / numberOfGridsPerDir);
        scene.scaleScene(factor);
        Vector2D middleOfScene = scene.getBoundingBox().middle();
       
        middleOfScene.mult(-1.0 / factor);
        scene.translateScene(middleOfScene);
        middleOfScene = scene.getBoundingBox().middle();
       
        this.addScene(scene);
        this.addScene(sceneComplete);
View Full Code Here

            for (int j = 0; j < numberOfGridsPerDir; j++) {
                scene = new ObstacleScene(params);
                for (int t = 0; t <= rand.nextInt(2); t++) {
                    scene.removeAgent(rand.nextInt(4));
                }
                scene.translateScene(new Vector2D(750 * i, 750 * j));
                sceneComplete.addScene(scene);
            }
        }
        boundThis = sceneComplete.getBoundingBox();
        Vector2D middleOfThis;
        if (boundThis != null) {
            middleOfThis = boundThis.middle();
        } else {
            middleOfThis = new Vector2D(0, 0);
        }
        middleOfThis.mult(-1);
        sceneComplete.translateScene(middleOfThis);

        scene = new ObstacleScene(params);
        factor = numberOfGridsPerDir * 1.77
                    + (0.3d - 0.3d / numberOfGridsPerDir);
        scene.scaleScene(factor);
        Vector2D middleOfScene = scene.getBoundingBox().middle();
       
        middleOfScene.mult(-1.0 / factor);
        scene.translateScene(middleOfScene);
        middleOfScene = scene.getBoundingBox().middle();
       
        this.addScene(scene);
        this.addScene(sceneComplete);
View Full Code Here

        Scene2D<AbstractAgent2D<?>> scene;
       
        for (int i = 1; i <= 3; i++) {
            scene = new ObstacleScene(params);
            scene.removeAgent(0);
            scene.translateScene(new Vector2D(50 * i, 40 * i));
            scene.rotateScene(5 * i);
            scene.scaleScene(1 / Math.pow(1.75, i));
            this.addScene(scene);
        }
       
View Full Code Here

        WandaEnvironment<AbstractAgent2D<?>> env = new WandaEnvironment<AbstractAgent2D<?>>(0 , params);
       
        // Rahmen (ca. 3000x3000)
        // Rahmen
        // horizontaler Balken unten
        env.addCollidingAgent(new ObstacleAgent(0, null, null), new Vector2D(0,1500), 0, new Vector2D(6,1));
        // horizontaler Balken oben
        env.addCollidingAgent(new ObstacleAgent(0, null, null), new Vector2D(0,-1500), 0, new Vector2D(6,1));
        // vertikaler Balken links
        env.addCollidingAgent(new ObstacleAgent(0, null, null), new Vector2D(-1510, 0), 90, new Vector2D(6,1));
        // vertikaler Balken rechts
        env.addCollidingAgent(new ObstacleAgent(0, null, null), new Vector2D(1510, 0), 90, new Vector2D(6,1));
       
        // Erzeugen der Agenten und Verhaltensuebertragung
        WandaAgent agent1 = new WandaAgent(0, env, params);
        agent1.addActuator(new aBerechnungSwarmSimulation());
       
        String fileName = SwarmScheduler.class.getPackage().getName().replace(".", "/")
                + "/swarmSimulation.xml";
       
        agent1.implantBrain(new MDL2eBrain<AbstractAgent2D<?>>(agent1, new File(fileName)));
        env.addCollidingAgent(agent1, new Vector2D(0,0), 80, new Vector2D(1,1));
       
        WandaAgent agent2 = new WandaAgent(0, env, params);
        agent2.addActuator(new aBerechnungSwarmSimulation());
        agent2.implantBrain(new MDL2eBrain<AbstractAgent2D<?>>(agent2, new File(fileName)));
        env.addCollidingAgent(agent2, new Vector2D(100,0), 80, new Vector2D(1,1));
       
        WandaAgent agent3 = new WandaAgent(0, env, params);
        agent3.addActuator(new aBerechnungSwarmSimulation());
        agent3.implantBrain(new MDL2eBrain<AbstractAgent2D<?>>(agent3, new File(fileName)));
        env.addCollidingAgent(agent3, new Vector2D(100,150), 80, new Vector2D(1,1));
       
        return new WandaEnvironment[] {env};
    }
View Full Code Here

  @SuppressWarnings("rawtypes")
  public int getLineValue() {

    WandaEnvironment env = body.getEnvironment();

    Vector2D pos = new Vector2D(env.getAgentPosition(body.id()));
   
    //calculate offset
    Vector2D offsetLOV = env.getNormalizedLOV(body.id());
    offsetLOV.rotate(Vector2D.NULL_VECTOR, offset * Math.PI/2);
    offsetLOV.setLength(Math.abs(offset) * cOffset);
   
   
    //sensed point
    pos.translate(offsetLOV);

View Full Code Here

     * @return    Den temporären Fitnesswert für den aktuellen Zustand des
     *            Roboters.
     */
    @Override
    public int fitness(final RobEA rob) {
        Vector2D mitte = new Vector2D(
                rob.getEnvironmentEA().getDynWaende()[17].centerPoint());
        Vector2D robPosVer = new Vector2D(rob.getPosition());
        Vector2D robPos = new Vector2D(rob.getPosition());
        Vector2D robBlick = new Vector2D(rob.getBlickrichtung());
        robBlick.mult(30);
        robPosVer.translate(robBlick);
        int fit = 0;
        int fitKoll = (int) (rob.getAnzUnfaelle()
                * rob.getPars().getParValueDouble(EAPlugin.UNFALL_ABZUG));
        rob.resetAnzUnf();

        if (fitKoll != 0) {
            fit -= fitKoll;
        }

        Vector2D richtPos = new Vector2D(robPos);
        // Richtung von Mitte zu Position des Roboters.
        richtPos.sub(mitte);

        Vector2D richtPosVer = new Vector2D(robPosVer);
        // Richtung von Mitte zu verschobener Position des Roboters.
        richtPosVer.sub(mitte);
       
        // Wenn ohne Bewegung.
        if (rob.getLastBf() == 3) {
            fit += 1;
        }
View Full Code Here

    }

    for (Iterator<Integer> iterator = agentsToCheck.iterator(); iterator.hasNext();) {
      Integer agentID = iterator.next();
      // Vector von Agent zu Body
      Vector2D vecAgentToThis = new Vector2D(env.getAgentPosition(agentID));
      vecAgentToThis.sub(env.getAgentPosition(body.id()));
      double distance = vecAgentToThis.length();
     
      if(distance <= cSensorReach){
       
        while(agentsInSensorField.containsKey(distance)){
          // dieser fall sollte sehr selten eintreten
View Full Code Here

  public boolean agentReachable(AbstractAgent2D agent) {

    AbstractEnvironment2D env = body.getEnvironment();

    // Vector von Agent zu Body
    Vector2D vecAgentToThis = new Vector2D(env.getAgentPosition(agent.id()));
    vecAgentToThis.sub(env.getAgentPosition(body.id()));

    // Agent ist innerhalb der Reichweite des Sensors
    if (vecAgentToThis.length() < cSensorReach)
        return true;

    return false;
  }
View Full Code Here

    /* Gravitation mit Vector2f einstellbar*/
    DomPhysEnv env
    = new DomPhysEnv(0, params, new Vector2f(0, 0), 100);
   
    DomPhysBalken balken = new DomPhysBalken (1, env, "balken", 1,params);
    env.addAgent(balken, new Vector2D(-100, -100), 45);
   
    //balken.adjustAngularVelocity(1f);
    DomPhysBalken balken2 = new DomPhysBalken (2, env, "balken", 1,params);
    env.addAgent(balken2, new Vector2D(-100, 100), 135);
   
    DomPhysBalken balken3 = new DomPhysBalken (3, env, "balken", 1,params);
    env.addAgent(balken3, new Vector2D(100, 100), 315);
   
    DomPhysBalken balken4 = new DomPhysBalken (4, env, "balken", 1,params);
    env.addAgent(balken4, new Vector2D(100, -100), 315);
   
    DomPhysBalken balken5 = new DomPhysBalken (5, env, "balken", 1,params);
    env.addAgent(balken5, new Vector2D(0, -140), 90);
   
    DomPhysBalken balken6 = new DomPhysBalken (6, env, "balken", 1,params);
    env.addAgent(balken6, new Vector2D(-140, 0), 90);
   
    DomPhysBalken balken7 = new DomPhysBalken (7, env, "balken", 1,params);
    env.addAgent(balken7, new Vector2D(140, 0), 90);
   
    DomPhysBalken balken8 = new DomPhysBalken (8, env, "balken", 1,params);
    env.addAgent(balken8, new Vector2D(0, 140), 0);
   
   
   
   
    return new DomPhysEnv[] {env};
View Full Code Here

TOP

Related Classes of eas.math.geometry.Vector2D

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.