package src;
import java.awt.Color;
import java.awt.Dimension;
Copyright By PowCoder代写 加微信 powcoder
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
public abstract class Line {
* Line – a demo program for drawing lines
* Created by Creath 2009, 2017
* Modified by 2022
static Dimension dim = new Dimension(640, 480);
abstract void line(BufferedImage buf, int x0, int y0, int x1, int y1,
public void refLine(BufferedImage buf, int x0, int y0, int x1, int y1, int rgb) {
* This is the reference implementation we are going to try and match.
Graphics g = buf.getGraphics();
g.setColor(new Color(rgb));
g.drawLine(x0, y0, x1, y1);
public void studentDrawLine(BufferedImage buf, int x0, int y0, int x1, int y1, int rgb) {
* Add your code here
* Your code should draw a line from (x0, y0) to (x1, y1) using the color rgb into buf.
* You may assume that the points are within the buffer.
* To set a pixel at location (x,y) to color rgb just use
* buf.setRGB(x,y,rgb);
* hint: You will probably need to handle multiple cases. There are eight octants to may
* need to consider, but it can be solved using just two cases.
// add your solution here…
public static void main(String[] args) throws InterruptedException {
Runnable run = new Runnable() {
public void run() {
// boiler plate to get us started…
// this just created a buffer which we can draw into.
JFrame jframe;
final BufferedImage offscreen1, offscreen2, offscreen3;
JComponent canvas1, canvas2, canvas3;
// set up the jframe and bufferedimages
JTabbedPane jtp = new JTabbedPane();
jframe = new JFrame(“Line Drawing”);
offscreen1 = new BufferedImage(dim.width, dim.height,
BufferedImage.TYPE_INT_RGB);
offscreen2 = new BufferedImage(dim.width, dim.height,
BufferedImage.TYPE_INT_RGB);
offscreen3 = new BufferedImage(dim.width, dim.height,
BufferedImage.TYPE_INT_RGB);
JPanel mainpanel = new JPanel();
canvas1 = new JComponent() {
public void paint(Graphics g) {
g.drawImage(offscreen1, 0, 0, null);
canvas1.setSize(dim);
canvas1.setPreferredSize(dim);
canvas2 = new JComponent() {
public void paint(Graphics g) {
g.drawImage(offscreen2, 0, 0, null);
canvas2.setSize(dim);
canvas2.setPreferredSize(dim);
canvas3 = new JComponent() {
public void paint(Graphics g) {
g.drawImage(offscreen3, 0, 0, null);
canvas3.setSize(dim);
canvas3.setPreferredSize(dim);
jtp.add(“Graphics \”drawLine\” method”, canvas1);
jtp.add(“Your line method”, canvas2);
jtp.add(“difference”, canvas3);
mainpanel.add(jtp);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(jframe.getContentPane()).add(new JScrollPane(mainpanel));
jframe.pack();
jframe.setVisible(true);
// clear the offscreen images
Graphics g = offscreen1.getGraphics();
g.setColor(new Color(1.0f, 1.0f, 1.0f));
g.fillRect(0, 0, offscreen1.getWidth(), offscreen1.getHeight());
g = offscreen2.getGraphics();
g.setColor(new Color(1.0f, 1.0f, 1.0f));
g.fillRect(0, 0, offscreen2.getWidth(), offscreen2.getHeight());
// code for using the inbuilt line drawing code
Line javaLine = new Line() {
void line(BufferedImage buf, int x0, int y0, int x1, int y1, int rgb) {
Graphics g = buf.getGraphics();
g.setColor(new Color(rgb));
g.drawLine(x0, y0, x1, y1);
// student version
Line studentLine = new Line() {
void line(BufferedImage buf, int x0, int y0, int x1, int y1, int rgb) {
this.studentDrawLine(buf, x0, y0, x1, y1, rgb);
// draw the two images
drawlines(javaLine, offscreen1);
canvas1.repaint();
drawlines(studentLine, offscreen2);
canvas2.repaint();
// dot the second image with blue where it is different
System.out.println(dotDifference(offscreen1, offscreen2, offscreen3)
+ ” differences found.”);
canvas2.repaint();
// do the speed test
speedtest(javaLine);
System.out.println(“Speed of lineJava (ms): ” + speedtest(javaLine));
speedtest(studentLine);
System.out.println(“Speed of line (ms) : ” + speedtest(studentLine));
SwingUtilities.invokeLater(run);
private static double speedtest(Line line) { // ms for drawing one scene
BufferedImage buf = new BufferedImage(dim.width, dim.height,
BufferedImage.TYPE_INT_RGB);
long start = System.nanoTime();
int numtest = 1000;
for (int i = 0; i < numtest; i++) {
Graphics g = buf.getGraphics();
g.setColor(new Color(1.0f, 1.0f, 1.0f));
g.fillRect(0, 0, buf.getWidth(), buf.getHeight());
drawlines(line, buf);
long end = System.nanoTime();
return ((end - start) / 1000000.0) / numtest ;
private static int dotDifference(BufferedImage s1, BufferedImage s2, BufferedImage s3) {
int res = 0;
int blue = (new Color(0.0f, 0.0f, 1.0f)).getRGB();
int white = (new Color(1.0f, 1.0f, 1.0f)).getRGB();
for (int x = 0; x < s1.getWidth(); x++) {
for (int y = 0; y < s1.getHeight(); y++) {
if (s1.getRGB(x, y) != s2.getRGB(x, y)) {
s3.setRGB(x, y, blue);
// only show difference
Color c = new Color(s1.getRGB(x, y));
float r = (9.0f + c.getRed()/255.0f) / 10.0f;
float g = (9.0f + c.getGreen()/255.0f) / 10.0f;
float b = (9.0f + c.getBlue()/255.0f) / 10.0f;
c = new Color(r, g, b);
s3.setRGB(x, y, c.hashCode());
return res;
static void drawlines(Line lr, BufferedImage buf) {
int rgb = (new Color(0.0f, 0.0f, 0.0f)).getRGB();
int red = (new Color(1.0f, 0.0f, 0.0f)).getRGB();
int green = (new Color(0.0f, 1.0f, 0.0f)).getRGB();
for (double t = 0.0; t < Math.PI * 2.0; t += Math.PI / 16.0) {
lr.line(buf, 100 + (int) (Math.sin(t) * 15.0), 100 + (int) (Math
.cos(t) * 15.0), 100 + (int) (Math.sin(t) * 85.0),
100 + (int) (Math.cos(t) * 85.0), red);
Random r = new Random(1);
for (int i=0;i<1000;i++) {
int x = r.nextInt(buf.getWidth()-41)+20;
int y = r.nextInt(buf.getHeight()/2)+buf.getHeight()/2 -20;
int dx = r.nextInt(41)-20;
int dy = r.nextInt(41)-20;
lr.line(buf,x,y,x+dx,y+dy,green);
lr.line(buf, 356, 118, 355, 116, rgb);
lr.line(buf, 355, 116, 354, 116, rgb);
lr.line(buf, 354, 116, 354, 116, rgb);
lr.line(buf, 354, 116, 353, 116, rgb);
lr.line(buf, 353, 116, 353, 116, rgb);
lr.line(buf, 353, 116, 352, 116, rgb);
lr.line(buf, 352, 116, 352, 116, rgb);
lr.line(buf, 352, 116, 352, 116, rgb);
lr.line(buf, 352, 116, 351, 116, rgb);
lr.line(buf, 351, 116, 350, 116, rgb);
lr.line(buf, 350, 116, 350, 116, rgb);
lr.line(buf, 350, 116, 349, 116, rgb);
lr.line(buf, 349, 116, 348, 116, rgb);
lr.line(buf, 348, 116, 347, 116, rgb);
lr.line(buf, 347, 116, 346, 117, rgb);
lr.line(buf, 346, 117, 346, 117, rgb);
lr.line(buf, 346, 117, 345, 117, rgb);
lr.line(buf, 345, 117, 343, 118, rgb);
lr.line(buf, 343, 118, 342, 119, rgb);
lr.line(buf, 342, 119, 341, 119, rgb);
lr.line(buf, 341, 119, 341, 119, rgb);
lr.line(buf, 341, 119, 340, 120, rgb);
lr.line(buf, 340, 120, 340, 120, rgb);
lr.line(buf, 340, 120, 339, 121, rgb);
lr.line(buf, 339, 121, 338, 121, rgb);
lr.line(buf, 338, 121, 337, 122, rgb);
lr.line(buf, 337, 122, 337, 122, rgb);
lr.line(buf, 337, 122, 336, 123, rgb);
lr.line(buf, 336, 123, 335, 123, rgb);
lr.line(buf, 335, 123, 335, 124, rgb);
lr.line(buf, 335, 124, 334, 124, rgb);
lr.line(buf, 334, 124, 334, 125, rgb);
lr.line(buf, 334, 125, 333, 126, rgb);
lr.line(buf, 333, 126, 332, 127, rgb);
lr.line(buf, 332, 127, 332, 127, rgb);
lr.line(buf, 332, 127, 331, 128, rgb);
lr.line(buf, 331, 128, 330, 129, rgb);
lr.line(buf, 330, 129, 329, 131, rgb);
lr.line(buf, 329, 131, 328, 131, rgb);
lr.line(buf, 328, 131, 327, 132, rgb);
lr.line(buf, 327, 132, 327, 133, rgb);
lr.line(buf, 327, 133, 326, 134, rgb);
lr.line(buf, 326, 134, 325, 135, rgb);
lr.line(buf, 325, 135, 325, 136, rgb);
lr.line(buf, 325, 136, 324, 137, rgb);
lr.line(buf, 324, 137, 324, 138, rgb);
lr.line(buf, 324, 138, 323, 139, rgb);
lr.line(buf, 323, 139, 323, 141, rgb);
lr.line(buf, 323, 141, 322, 143, rgb);
lr.line(buf, 322, 143, 321, 145, rgb);
lr.line(buf, 321, 145, 321, 146, rgb);
lr.line(buf, 321, 146, 321, 147, rgb);
lr.line(buf, 321, 147, 320, 149, rgb);
lr.line(buf, 320, 149, 320, 150, rgb);
lr.line(buf, 320, 150, 320, 151, rgb);
lr.line(buf, 320, 151, 319, 156, rgb);
lr.line(buf, 319, 156, 319, 158, rgb);
lr.line(buf, 319, 158, 319, 160, rgb);
lr.line(buf, 319, 160, 319, 161, rgb);
lr.line(buf, 319, 161, 319, 163, rgb);
lr.line(buf, 319, 163, 319, 164, rgb);
lr.line(buf, 319, 164, 320, 166, rgb);
lr.line(buf, 320, 166, 320, 168, rgb);
lr.line(buf, 320, 168, 321, 172, rgb);
lr.line(buf, 321, 172, 322, 174, rgb);
lr.line(buf, 322, 174, 322, 176, rgb);
lr.line(buf, 322, 176, 323, 178, rgb);
lr.line(buf, 323, 178, 324, 179, rgb);
lr.line(buf, 324, 179, 325, 181, rgb);
lr.line(buf, 325, 181, 326, 183, rgb);
lr.line(buf, 326, 183, 327, 184, rgb);
lr.line(buf, 327, 184, 328, 186, rgb);
lr.line(buf, 328, 186, 329, 187, rgb);
lr.line(buf, 329, 187, 335, 192, rgb);
lr.line(buf, 335, 192, 336, 194, rgb);
lr.line(buf, 336, 194, 338, 195, rgb);
lr.line(buf, 338, 195, 340, 197, rgb);
lr.line(buf, 340, 197, 341, 198, rgb);
lr.line(buf, 341, 198, 343, 199, rgb);
lr.line(buf, 343, 199, 345, 200, rgb);
lr.line(buf, 345, 200, 348, 202, rgb);
lr.line(buf, 348, 202, 352, 203, rgb);
lr.line(buf, 352, 203, 354, 204, rgb);
lr.line(buf, 354, 204, 356, 205, rgb);
lr.line(buf, 356, 205, 358, 205, rgb);
lr.line(buf, 358, 205, 360, 206, rgb);
lr.line(buf, 360, 206, 362, 206, rgb);
lr.line(buf, 362, 206, 363, 206, rgb);
lr.line(buf, 363, 206, 365, 206, rgb);
lr.line(buf, 365, 206, 367, 206, rgb);
lr.line(buf, 367, 206, 369, 206, rgb);
lr.line(buf, 369, 206, 371, 206, rgb);
lr.line(buf, 371, 206, 372, 207, rgb);
lr.line(buf, 372, 207, 374, 207, rgb);
lr.line(buf, 374, 207, 376, 207, rgb);
lr.line(buf, 376, 207, 377, 206, rgb);
lr.line(buf, 377, 206, 378, 206, rgb);
lr.line(buf, 378, 206, 380, 206, rgb);
lr.line(buf, 380, 206, 381, 206, rgb);
lr.line(buf, 381, 206, 383, 205, rgb);
lr.line(buf, 383, 205, 384, 205, rgb);
lr.line(buf, 384, 205, 386, 204, rgb);
lr.line(buf, 386, 204, 387, 204, rgb);
lr.line(buf, 387, 204, 389, 203, rgb);
lr.line(buf, 389, 203, 390, 203, rgb);
lr.line(buf, 390, 203, 394, 201, rgb);
lr.line(buf, 394, 201, 395, 200, rgb);
lr.line(buf, 395, 200, 396, 199, rgb);
lr.line(buf, 396, 199, 397, 198, rgb);
lr.line(buf, 397, 198, 399, 197, rgb);
lr.line(buf, 399, 197, 400, 196, rgb);
lr.line(buf, 400, 196, 401, 195, rgb);
lr.line(buf, 401, 195, 402, 193, rgb);
lr.line(buf, 402, 193, 403, 192, rgb);
lr.line(buf, 403, 192, 405, 189, rgb);
lr.line(buf, 405, 189, 407, 185, rgb);
lr.line(buf, 407, 185, 407, 183, rgb);
lr.line(buf, 407, 183, 408, 182, rgb);
lr.line(buf, 408, 182, 408, 181, rgb);
lr.line(buf, 408, 181, 408, 179, rgb);
lr.line(buf, 408, 179, 408, 178, rgb);
lr.line(buf, 408, 178, 409, 176, rgb);
lr.line(buf, 409, 176, 409, 175, rgb);
lr.line(buf, 409, 175, 409, 174, rgb);
lr.line(buf, 409, 174, 409, 173, rgb);
lr.line(buf, 409, 173, 409, 172, rgb);
lr.line(buf, 409, 172, 409, 171, rgb);
lr.line(buf, 409, 171, 409, 168, rgb);
lr.line(buf, 409, 168, 409, 167, rgb);
lr.line(buf, 409, 167, 409, 166, rgb);
lr.line(buf, 409, 166, 409, 165, rgb);
lr.line(buf, 409, 165, 409, 164, rgb);
lr.line(buf, 409, 164, 409, 163, rgb);
lr.line(buf, 409, 163, 409, 162, rgb);
lr.line(buf, 409, 162, 409, 161, rgb);
lr.line(buf, 409, 161, 408, 161, rgb);
lr.line(buf, 408, 161, 408, 160, rgb);
lr.line(buf, 408, 160, 408, 159, rgb);
lr.line(buf, 408, 159, 408, 157, rgb);
lr.line(buf, 408, 157, 408, 156, rgb);
lr.line(buf, 408, 156, 407, 155, rgb);
lr.line(buf, 407, 155, 407, 154, rgb);
lr.line(buf, 407, 154, 407, 153, rgb);
lr.line(buf, 407, 153, 406, 153, rgb);
lr.line(buf, 406, 153, 406, 152, rgb);
lr.line(buf, 406, 152, 406, 151, rgb);
lr.line(buf, 406, 151, 406, 151, rgb);
lr.line(buf, 406, 151, 405, 150, rgb);
lr.line(buf, 405, 150, 405, 148, rgb);
lr.line(buf, 405, 148, 405, 148, rgb);
lr.line(buf, 405, 148, 405, 147, rgb);
lr.line(buf, 405, 147, 404, 147, rgb);
lr.line(buf, 404, 147, 404, 146, rgb);
lr.line(buf, 404, 146, 404, 146, rgb);
lr.line(buf, 404, 146, 404, 145, rgb);
lr.line(buf, 404, 145, 403, 144, rgb);
lr.line(buf, 403, 144, 403, 144, rgb);
lr.line(buf, 403, 144, 403, 143, rgb);
lr.line(buf, 403, 143, 403, 143, rgb);
lr.line(buf, 403, 143, 403, 142, rgb);
lr.line(buf, 403, 142, 402, 142, rgb);
lr.line(buf, 402, 142, 402, 142, rgb);
lr.line(buf, 402, 142, 402, 142, rgb);
lr.line(buf, 402, 142, 402, 141, rgb);
lr.line(buf, 402, 141, 402, 141, rgb);
lr.line(buf, 402, 141, 402, 141, rgb);
lr.line(buf, 402, 141, 401, 140, rgb);
lr.line(buf, 401, 140, 401, 140, rgb);
lr.line(buf, 401, 140, 401, 140, rgb);
lr.line(buf, 401, 140, 400, 139, rgb);
lr.line(buf, 400, 139, 400, 139, rgb);
lr.line(buf, 400, 139, 400, 138, rgb);
lr.line(buf, 400, 138, 399, 137, rgb);
lr.line(buf, 399, 137, 399, 137, rgb);
lr.line(buf, 399, 137, 398, 136, rgb);
lr.line(buf, 398, 136, 398, 136, rgb);
lr.line(buf, 398, 136, 398, 135, rgb);
lr.line(buf, 398, 135, 398, 135, rgb);
lr.line(buf, 398, 135, 398, 135, rgb);
lr.line(buf, 398, 135, 397, 134, rgb);
lr.line(buf, 397, 134, 397, 134, rgb);
lr.line(buf, 397, 134, 397, 134, rgb);
lr.line(buf, 397, 134, 396, 134, rgb);
lr.line(buf, 396, 134, 396, 133, rgb);
lr.line(buf, 396, 133, 396, 133, rgb);
lr.line(buf, 396, 133, 396, 133, rgb);
lr.line(buf, 396, 133, 395, 133, rgb);
lr.line(buf, 395, 133, 395, 132, rgb);
lr.line(buf, 395, 132, 395, 132, rgb);
lr.line(buf, 395, 132, 394, 132, rgb);
lr.line(buf, 394, 132, 394, 131, rgb);
lr.line(buf, 394, 131, 393, 131, rgb);
lr.line(buf, 393, 131, 393, 131, rgb);
lr.line(buf, 393, 131, 393, 130, rgb);
lr.line(buf, 393, 130, 392, 130, rgb);
lr.line(buf, 392, 130, 392, 129, rgb);
lr.line(buf, 392, 129, 391, 129, rgb);
lr.line(buf, 391, 129, 391, 129, rgb);
lr.line(buf, 391, 129, 390, 129, rgb);
lr.line(buf, 390, 129, 390, 128, rgb);
lr.line(buf, 390, 128, 389, 128, rgb);
lr.line(buf, 389, 128, 389, 128, rgb);
lr.line(buf, 389, 128, 388, 127, rgb);
lr.line(buf, 388, 127, 388, 127, rgb);
lr.line(buf, 388, 127, 387, 127, rgb);
lr.line(buf, 387, 127, 387, 126, rgb);
lr.line(buf, 387, 126, 386, 126, rgb);
lr.line(buf, 386, 126, 385, 125, rgb);
lr.line(buf, 385, 125, 384, 124, rgb);
lr.line(buf, 384, 124, 384, 124, rgb);
lr.line(buf, 384, 124, 383, 123, rgb);
lr.line(buf, 383, 123, 382, 123, rgb);
lr.line(buf, 382, 123, 382, 123, rgb);
lr.line(buf, 382, 123, 382, 122, rgb);
lr.line(buf, 382, 122, 381, 122, rgb);
lr.line(buf, 381, 122, 380, 122, rgb);
lr.line(buf, 380, 122, 379, 121, rgb);
lr.line(buf, 379, 121, 379, 121, rgb);
lr.line(buf, 379, 121, 378, 120, rgb);
lr.line(buf, 378, 120, 378, 120, rgb);
lr.line(buf, 378, 120, 377, 120, rgb);
lr.line(buf, 377, 120, 377, 120, rgb);
lr.line(buf, 377, 120, 376, 119, rgb);
lr.line(buf, 376, 119, 375, 119, rgb);
lr.line(buf, 375, 119, 374, 118, rgb);
lr.line(buf, 374, 118, 373, 118, rgb);
lr.line(buf, 373, 118, 373, 118, rgb);
lr.line(buf, 373, 118, 373, 118, rgb);
lr.line(buf, 373, 118, 372, 117, rgb);
lr.line(buf, 372, 117, 372, 117, rgb);
lr.line(buf, 372, 117, 371, 117, rgb);
lr.line(buf, 371, 117, 370, 117, rgb);
lr.line(buf, 370, 117, 369, 116, rgb);
lr.line(buf, 369, 116, 367, 116, rgb);
lr.line(buf, 367, 116, 366, 115, rgb);
lr.line(buf, 366, 115, 366, 115, rgb);
lr.line(buf, 366, 115, 365, 115, rgb);
lr.line(buf, 365, 115, 364, 115, rgb);
lr.line(buf, 364, 115, 364, 115, rgb);
lr.line(buf, 364, 115, 363, 115, rgb);
lr.line(buf, 363, 115, 362, 115, rgb);
lr.line(buf, 362, 115, 362, 115, rgb);
lr.line(buf, 362, 115, 361, 115, rgb);
lr.line(buf, 361, 115, 361, 115, rgb);
lr.line(buf, 361, 115, 361, 115, rgb);
lr.line(buf, 361, 115, 361, 115, rgb);
lr.line(buf, 361, 115, 361, 114, rgb);
lr.line(buf, 361, 114, 361, 114, rgb);
lr.line(buf, 361, 114, 360, 114, rgb);
lr.line(buf, 360, 114, 360, 114, rgb);
lr.line(buf, 360, 114, 359, 114, rgb);
lr.line(buf, 359, 114, 359, 114, rgb);
lr.line(buf, 359, 114, 358, 114, rgb);
lr.line(buf, 358, 114, 357, 114, rgb);
lr.line(buf, 357, 114, 357, 114, rgb);
lr.line(buf, 357, 114, 357, 114, rgb);
lr.line(buf, 357, 114, 356, 114, rgb);
lr.line(buf, 356, 114, 356, 114, rgb);
lr.line(buf, 356, 114, 356, 114, rgb);
lr.line(buf, 356, 114, 356, 114, rgb);
lr.line(buf, 356, 114, 356, 114, rgb);
lr.line(buf, 356, 114, 355, 114, rgb);
lr.line(buf, 355, 114, 355, 114, rgb);
lr.line(buf, 355, 114, 354, 114, rgb);
lr.line(buf, 354, 114, 353, 114, rgb);
lr.line(buf, 353, 114, 352, 115, rgb);
lr.line(buf, 352, 115, 351, 115, rgb);
lr.line(buf, 351, 115, 350, 115, rgb);
lr.line(buf, 350, 115, 349, 115, rgb);
lr.line(buf, 349, 115, 348, 115, rgb);
lr.line(buf, 348, 115, 348, 115, rgb);
lr.line(buf, 348, 115, 347, 116, rgb);
lr.line(buf, 347, 116, 346, 116, rgb);
lr.line(buf, 346, 116, 346, 116, rgb);
lr.line(buf, 346, 116, 346, 116, rgb);
lr.line(buf, 346, 116, 346, 116, rgb);
lr.line(buf, 346, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 345, 116, rgb);
lr.line(buf, 345, 116, 346, 116, rgb);
lr.line(buf, 346, 116, 346, 117, rgb);
lr.line(buf, 346, 117, 347, 117, rgb);
lr.line(buf, 353, 138, 349, 136, rgb);
lr.line(buf, 349, 136, 349, 136, rgb);
lr.line(buf, 349, 136, 348, 136, rgb);
lr.line(buf, 348, 136, 347, 136, rgb);
lr.line(buf, 347, 136, 347, 136, rgb);
lr.line(buf, 347, 136, 346, 136, rgb);
lr.line(buf, 346, 136, 345, 136, rgb);
lr.line(buf, 345, 136, 344, 137, rgb);
lr.line(buf, 344, 137, 344, 137, rgb);
lr.line(buf, 344, 137, 343, 138, rgb);
lr.line(buf, 343, 138, 343, 138, rgb);
lr.line(buf, 343, 138, 342, 139, rgb);
lr.line(buf, 342, 139, 342, 140, rgb);
lr.line(buf, 342, 140, 341, 141, rgb);
lr.line(buf, 341, 141, 341, 142, rgb);
lr.line(buf, 341, 142, 341, 146, rgb);
lr.line(buf, 341, 146, 341, 147, rgb);
lr.line(buf, 341, 147, 341, 147, rgb);
lr.line(buf, 341, 147, 341, 148, rgb);
lr.line(buf, 341, 148, 342, 149, rgb);
lr.line(buf, 342, 149, 343, 150, rgb);
lr.line(buf, 343, 150, 343, 150, rgb);
lr.line(buf, 343, 150, 344, 151, rgb);
lr.line(buf, 344, 151, 345, 151, rgb);
lr.line(buf, 345, 151, 351, 152, rgb);
lr.line(buf, 351, 152, 352, 151, rgb);
lr.line(buf, 352, 151, 354, 151, rgb);
lr.line(buf, 354, 151, 355, 151, rgb);
lr.line(buf, 355, 151, 356, 150, rgb);
lr.line(buf, 356, 150, 357, 150, rgb);
lr.line(buf, 357, 150, 358, 149, rgb);
lr.line(buf, 358, 149, 362, 145, rgb);
lr.line(buf, 362, 145, 362, 144, rgb);
lr.line(buf, 362, 144, 362, 143, rgb);
lr.line(buf, 362, 143, 362, 142, rgb);
lr.line(buf, 362, 142, 362, 142, rgb);
lr.line(buf, 362, 142, 362, 141, rgb);
lr.line(buf, 362, 141, 361, 140, rgb);
lr.line(buf, 361, 140, 360, 140, rgb);
lr.line(buf, 360, 140, 359, 138, rgb);
lr.line(buf, 359, 13
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com