2017-03-24 6 views
1

여기 내 코드가 있습니다. 중복되지 않는 임의의 위치에 객체를 생성하는 다른 방법이 있습니까? 시간 내 줘서 고마워.임의의 벡터를 n 개의 요소가있는 배열에 추가하고 싶습니다. 그러나 새로운 무작위 Vertor와 배열의 요소 사이의 거리를 원합니다> 4f

public ArrayList getVector3f() { 
    boolean lessThan = false; 
    // create first random vector & add it to the list array 
    Vector3f v1 = randVector(); 
    list.add(v1); 
    //num=4; 
    for (int i = 0; i <= num - 2; i++) { 
     vec = randVector(); 

     for (int j = 0; j <= list.size() - 1 ; j++) { 
      if (list.get(j).distance(vec) < 4f) { 
       lessThan = true; 
      } 
     } 
     if (lessThan == true) { 
      vec = randVector(); 
      for (int j = 0; j <= list.size() - 1; j++) { 
       if (list.get(j).distance(vec) < 4f) { 
        lessThan = true; 
       } else { 
        lessThan = false; 
       } 
      } 
     } 
     if (lessThan == false) { 
      list.add(vec); 
      System.out.println(vec); 
     } 
    } 
    return list; 
} 

답변

0

"루프를 풀었습니다." 시도해보십시오 (테스트 안 함) : -

public ArrayList getVector3f() { 
    // create first random vector & add it to the list array 
    Vector3f vec = randVector(); 
    list.add(vec); 

    for (int i = 0; i <= num-2; i++) { 
     boolean lessThan = true; 
     while (lessThan) { 
      lessThan = false; 
      vec = randVector(); 
      for (int j = 0; j < list.size() ; j++) { 
       if (list.get(j).distance(vec) < 4f) { 
        lessThan = true; 
        break; 
       } 
      } 
     } 
     list.add(vec); 
     System.out.println(vec); 
    } 
    return list; 
}