2014-01-30 4 views
1

동적 날짜를 플롯하기 위해 android plot을 사용하고 있습니다. 누구든지 아래 사진에서 사인파의 너비를 어떻게 바꿀 수 있는지 말해 줄 수 있습니까?Android Plot에서 사인파 폭 변경

enter image description here

나는 Dynamic XY Plot에 대한 샘플 코드를 사용하고 있습니다.

아래 코드는 필자의 활동입니다.

public class MyActivity extends Activity { 

// redraws a plot whenever an update is received: 
private class MyPlotUpdater implements Observer { 
    Plot plot; 
    public MyPlotUpdater(Plot plot) { 
     this.plot = plot; 
    } 
    @Override 
    public void update(Observable o, Object arg) { 
     try { 
      plot.postRedraw(); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. 
     } 
    } 
} 

private XYPlot dynamicPlot; 
private XYPlot staticPlot; 
private MyPlotUpdater plotUpdater; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    // android boilerplate stuff 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // get handles to our View defined in layout.xml: 
    dynamicPlot = (XYPlot) findViewById(R.id.dynamicPlot); 

    plotUpdater = new MyPlotUpdater(dynamicPlot); 

    // only display whole numbers in domain labels 
    dynamicPlot.getGraphWidget().setDomainValueFormat(new DecimalFormat("0")); 

    // getInstance and position datasets: 
    SampleDynamicXYDatasource data = new SampleDynamicXYDatasource(); 
    SampleDynamicSeries sine1Series = new SampleDynamicSeries(data, 0, "Sine 1"); 
    SampleDynamicSeries sine2Series = new SampleDynamicSeries(data, 1, "Sine 2"); 

    dynamicPlot.addSeries(sine1Series, new LineAndPointFormatter(Color.rgb(0, 0, 0), null, Color.rgb(0, 80, 0))); 

    // create a series using a formatter with some transparency applied: 
    LineAndPointFormatter f1 = new LineAndPointFormatter(Color.rgb(0, 0, 200), null, Color.rgb(0, 0, 80)); 
    f1.getFillPaint().setAlpha(220); 
    dynamicPlot.addSeries(sine2Series, f1); 
    dynamicPlot.setGridPadding(5, 0, 5, 0); 

    // hook up the plotUpdater to the data model: 
    data.addObserver(plotUpdater); 

    dynamicPlot.setDomainStepMode(XYStepMode.SUBDIVIDE); 
    dynamicPlot.setDomainStepValue(sine1Series.size()); 

    // thin out domain/range tick labels so they dont overlap each other: 
    dynamicPlot.setTicksPerDomainLabel(5); 
    dynamicPlot.setTicksPerRangeLabel(3); 
    dynamicPlot.disableAllMarkup(); 

    // freeze the range boundaries: 
    dynamicPlot.setRangeBoundaries(-100, 100, BoundaryMode.FIXED); 

    // kick off the data generating thread: 
    new Thread(data).start(); 
} 

} 파일에서

+0

주어진 코드 값에 대한 Y 값을 계산하는 코드를 제시해주십시오. –

+0

이미 질문에서 사용하는 자습서가 제공됩니다. –

+0

글쎄, 독자가 당신을 도울 수있는 방법이 얼마나 쉽고 어렵고, 어떤 종류의 반응을 그릴 수 있는지에 따라 다릅니다. 그것이 도움이되기 위해 올바른 코드 조각을 찾기 위해 전체 자습서를 파헤쳐 야합니다. –

답변

1

SampleDynamicXYDatasource.java 당신은 라인이 사인파가 발생

double amp = sinAmp * Math.sin(index + phase + 4); 

을 찾을 수 있습니다. 지수를 낮추면 (예 : 0.5로 곱함) 사인파의주기를 크게 만들거나 그래픽에서 말하며 x 축에서 크기를 조정할 수 있습니다.

+0

쿨 .... 고마워. .. 일하고있어 .. –