g.drawArc(131-10, 38-(44-38), 10, (44-38)*2, 0, -90);
g.drawPolyline(new int[]{74,81,131-10/2}, new int[]{26,44,44}, 3);
g.drawPolyline(new int[]{129,120,116}, new int[]{35,35,26}, 3);
g.drawPolyline(new int[]{113,117,108,102}, new int[]{26,35,35,26}, 4);
g.drawPolygon(new int[]{54,45,37,46}, new int[]{31,31,25,25}, 4);
g.drawLine(99, 26, 106, 44);
g.drawLine(99, 32, 101, 32);
g.drawLine(102, 39, 104, 39);
//飞机前桨
g.drawPolyline(new int[]{112,112,108,108}, new int[]{19,10,10,19}, 4);
g.drawOval(108, (10-4), 4, 4);
g.drawArc(108-(108-62)*2, 6-5, (108-62)*2, 5*2, 0, -90);
g.drawArc(108-(108-62), 6, (108-62)*2, 5*2, 180, -90);
g.drawArc(112-(108-62), 6-5*2, (108-62)*2, 5*2, 0, -90);
g.drawArc(112, 6-5, (108-62)*2, 5*2, 180, -90);
//飞机后浆 计算正切圆的切点坐标及外接正方形的起点坐标
g.drawPolyline(new int[]{24,17}, new int[]{28,21}, 2);
g.drawPolyline(new int[]{13,14}, new int[]{21,28},2);
g.drawArc(13,19,4,4,160,-180);
g.drawOval((15-12),(31-12),12*2,12*2);
g.drawArc((15-8),(31-8),8*2,8*2,20,120);
g.drawArc((15-8),(31-8),8*2,8*2,-20,-50);
g.drawArc((15-8),(31-8),8*2,8*2,-90,-100);
//飞机底座
g.drawArc(108,51,16,16,0,90);
g.drawArc(130,51,16,16,20,90);
g.drawArc(55,(51-8+6),100,(16-6),-20,-70);
}
}
效果:

摘自 Goodspeed85