Следното трябва да начертае ос в средата на екрана. Нищо обаче не се появява. Сигурен съм, че това е свързано с моите Пътища.
@Override
protected void onDraw(Canvas canvas) {
//Variables declared here temporarily for testing purposes
int canterX = getWidth() /2;
int centerY = getHeight() /2;
int radius = 150;
Path verticalAxis = new Path();
Path horizontalAxis = new Path();
drawAxis();
}
private void drawAxis(Canvas canvas) {
int axisLineThickness = 1;
int verticalEndX;
int verticalEndY;
int horizontalEndX;
int horizontalEndY;
Paint axisPaint = new Paint();
axisPaint.setColor(Color.WHITE);
axisPaint.setStrokeWidth(axisLineThickness);
double theta;
for(int i = 90; i < 360; i += 180) {
theta = toRadians(i);
verticalEndX = centerX + (int) ((cos(theta)) * radius);
verticalEndY = centerY + (int) ((sin(theta)) * radius);
verticalAxis.moveTo(centerX, centerY);
verticalAxis.lineTo(verticalEndX, verticalEndY);
}
canvas.drawPath(verticalAxis, axisColor);
for(int i = 90; i < 360; i += 180) {
theta = toRadians(i);
horizontalEndX = centerX + (int) ((cos(theta)) * radius);
horizontalEndY = centerY + (int) ((sin(theta)) * radius);
horizontalAxis.moveTo(centerX, centerY);
horizontalAxis.lineTo(verticalEndX, verticalEndY);
}
canvas.drawPath(horizontalAxis, axisColor);
}
Знам, че мога да накарам оста да чертае, ако добавя следното съответно към вертикалните и хоризонталните for цикли:
Вертикален цикъл за:
canvas.drawLine(centerX, centerY, verticalEndX, verticalEndY, paint);
Хоризонтален цикъл за:
canvas.drawLine(centerX, centerY, horizontalEndX, horizontalEndY, paint);
Но аз не искам да решавам проблема по този начин, искам да коригирам това, което не е наред с моите пътища. Може ли някой да ми каже защо точките не се добавят правилно към пътя ми? Примката трябва да преминава само два пъти, което създава линия за всяка страна на оста. т.е. Единият контур създава горната част на вертикалната ос, а вторият контур създава долната част.
Как да накарам пътищата си да създадат тази пълна линия и след това да я начертая извън цикъла?