2016-10-19 5 views
1

나는 이렇게 곡선을 그려야한다. required output. 하지만 출력이 이 current output처럼지고 있어요. 여기서 푸른 색은 배경입니다 & 곡선은 붉은 색입니다. 여기 내 코드. 예 :android에서 커브를 그리는 방법

for (i = 10; i <= 360; i = i + 10) { 
    new_x = i; 
    new_y = (float) Math.sin(new_x/180.0 * Math.PI); 

    canvas.drawLine((float) (old_x/360.0 * w), 100 + 90 * old_y, (float) (new_x/360.0 * w), 100 + 90 * new_y, paint); 

    old_x = new_x; 
    old_y = new_y; 
} 
+0

이 시도 http://stackoverflow.com/questions/11131954/how-to-draw-arc-between-two-points-on-the-canvas –

+0

어떤 점이 어떤 점인지 말해 주시겠습니까? – kashyap

+0

특정 점에 대해 x와 y 값을 포함하는 점 클래스입니다. –

답변

0

대신 drawline 때마다 호출, drawPath를 사용하는 것이 더 최적화 될 수 있습니다. 그런 다음

Path path = new Path(); 
boolean first = true; 
for (i = 10; i <= 360; i = i + 10) { 
    new_x = i; 
    new_y = (float) Math.sin(new_x/180.0 * Math.PI); 


    if (first) { 
     first = false; 
     path.moveTo(new_x, new_y); 
    } 
    else{ 
     path.lineTo(new_x, new_y); 
    } 
} 
canvas.drawPath(path, paint); 

을 부드럽게하기 위해 중간에 점을 들어, 대신에 lineTo의 quadTo를 사용하려고 : https://developer.android.com/reference/android/graphics/Path.html#quadTo(float, 부동, 플로트, 플로트)

관련 문제