2013-09-04 3 views
1

Processing에 대한 질문을하고 싶습니다. 나는 사용자 정의 객체 클래스 인 Point를 가지고 있으며 두 개의 데이터 멤버 x와 y가 둘 다 float로 선언되어 있습니다. 다른 클래스 인식기가 있습니다. Recognizer의 생성자를 만들고 내부에 Point[] point0, Point[] point1 등의 객체를 정의해야합니다.처리중인 개체의 가변 크기 동적 배열 선언

Point [] point0={new Point(137,139),new Point(50,63),..., new Point(78,5)}; 
so is point1[],point2[],...,pointn[] 

그 밖의 방법으로 해당 x 및 y 좌표 값을 갖는 point0에 값을 추가 할 수 있습니다.

또한 각 개체의 크기는 point1,point2,..., pointn입니다.

어떻게하면 위의 목표를 달성 할 수 있습니까?

+1

당신은 배열이나 ArrayList에를 만들고 루프에서 채 웁니다 중 하나. 필요한 포인트가 포함 된 외부 텍스트 파일을 읽을 때이 작업을 수행하는 것이 좋습니다. –

+0

언어를 선택하십시오. 사용하지 않는 언어로 답변을 제공하는 것은 의미가 없습니다. –

+0

@ PeterLawrey. 나는 Processing을 지정했다. "Point [] point0 = {새 포인트 (137,139), 새 포인트 (50,63), ..., 새 포인트 (78,5)};"코드를 사용하여 포인트를 추가하는 대신 altenate 메소드가 필요합니다. – MELWIN

답변

1

2 차원 배열을 사용하는 것은 어떻습니까?

Point [] points0={new Point(137,139),new Point(50,63),new Point(78,5)}; 
Point [] points1={new Point(147,139),new Point(60,63),new Point(79,5)}; 
Point [] points2={new Point(157,139),new Point(70,63),new Point(80,5)}; 

void setup(){ 
    Point[][] pointLists = {points0,points1,points2}; 
    Recognizer r = new Recognizer(pointLists); 
} 

class Point{ 
    float x,y; 
    Point(float x,float y){ 
    this.x = x; 
    this.y = y; 
    } 
    String toString(){ 
    return "Point("+x+","+y+")"; 
    } 
} 
class Recognizer{ 
    Point[][] data; 
    Recognizer(Point[][] data){ 
    this.data = data; 
    for(int i = 0 ; i < data.length; i++){ 
     println("processing points list" + i); 
     for(int j = 0; j < data[i].length; j++){ 
     println("processing point["+j+"] of list " + i + " : "+data[i][j]); 
     } 
    } 
    } 
} 

와 ArrayList의 버전 :

import java.util.Arrays; 

ArrayList<Point> points0 = new ArrayList<Point>(Arrays.asList(new Point[]{new Point(137,139),new Point(50,63),new Point(78,5)})); 
ArrayList<Point> points1 = new ArrayList<Point>(Arrays.asList(new Point[]{new Point(147,139),new Point(60,63),new Point(79,5)})); 
ArrayList<Point> points2 = new ArrayList<Point>(Arrays.asList(new Point[]{new Point(157,139),new Point(70,63),new Point(80,5)})); 

void setup(){ 
    ArrayList<ArrayList<Point>> pointLists = new ArrayList<ArrayList<Point>>(); 
    pointLists.add(points0); 
    pointLists.add(points1); 
    pointLists.add(points2); 
    Recognizer r = new Recognizer(pointLists); 
} 

class Point{ 
    float x,y; 
    Point(float x,float y){ 
    this.x = x; 
    this.y = y; 
    } 
    String toString(){ 
    return "Point("+x+","+y+")"; 
    } 
} 
class Recognizer{ 
    ArrayList<ArrayList<Point>> data; 
    Recognizer(ArrayList<ArrayList<Point>> data){ 
    this.data = data; 
    for(int i = 0 ; i < data.size(); i++){ 
     println("processing points list" + i); 
     for(int j = 0; j < data.get(i).size(); j++){//write this in a nicer way, too many get calls, might want a reusable variable here 
     println("processing point["+j+"] of list " + i + " : "+data.get(i).get(j)); 
     } 
    } 
    } 
} 
+0

동일한 배열 목록 사용을 구현하는 방법은 무엇입니까? – MELWIN

+0

@MELWIN 업데이트 된 답변보기, 유용하다면 표시/투표 하시길 바랍니다. –