//hue, vertical
gfx.translate(centerPoint.getX(),centerPoint.getY());
for(double i=0; i<200; i++) {
FlatColor c = FlatColor.hsb(i/200*360.0, curr[1], curr[2]);
gfx.setPaint(c);
double y = start[0]*200;
gfx.drawLine(-5,i-y,+5, i-y);
}
gfx.translate(-centerPoint.getX(),-centerPoint.getY());
//saturation, 30 degrees
gfx.translate(centerPoint.getX(),centerPoint.getY());
for(double i=0; i<200; i++) {
FlatColor c = FlatColor.hsb(curr[0]*360, i/200.0, curr[2]);
gfx.setPaint(c);
double sin = Math.sin(Math.toRadians(30));
double cos = Math.cos(Math.toRadians(30));
double x = cos*i - cos*start[1]*200 + 0;
double y = sin*i - sin*start[1]*200 + 0;
//tx = cos(30)*i
//tx/cos(30) = i
gfx.drawLine(x,y-5,x,y+5);
}
gfx.translate(-centerPoint.getX(),-centerPoint.getY());
//brightness, 150 degrees
gfx.translate(centerPoint.getX(),centerPoint.getY());
for(double i=0; i<200; i++) {
FlatColor c = FlatColor.hsb(curr[0]*360, curr[1], i/200.0);
gfx.setPaint(c);
double sin = Math.sin(Math.toRadians(150));
double cos = Math.cos(Math.toRadians(150));
double x = cos*i - cos*start[2]*200;
double y = sin*i - sin*start[2]*200;