第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我有坐標(biāo)列表,我的要求是安排它

我有坐標(biāo)列表,我的要求是安排它

MMMHUHU 2023-10-13 16:31:53
我有要畫線的坐標(biāo)列表。實(shí)際上問題是這些坐標(biāo)不按順序排列。結(jié)束線的坐標(biāo)是另一條線的起始線的坐標(biāo)。如果任何線的結(jié)束線坐標(biāo)與另一條線的起始坐標(biāo)不匹配,則創(chuàng)建連接線列表。線的坐標(biāo)為startx,starty,endx,endy。下面是線坐標(biāo)列表。3350 1500 3200 15001450 1750 1450 22001450 2200 2100 22002400 2200 2550 22002550 2200 2550 23502550 2350 2850 23502850 2350 2850 27002850 2700 3350 27003650 2700 3750 27003750 2700 3750 26003750 2600 5250 26005250 2600 5250 23505250 2350 5000 23504700 2350 4350 23504350 2350 4350 16004350 1600 3650 16003650 1600 3650 15003200 1500 3200 17503200 1750 1450 1750這里最后兩條線坐標(biāo)實(shí)際上位于第二和第三位置。3200 1500 3200 17503200 1750 1450 1750我的要求是創(chuàng)建所有相互連接的線。List<DeviceElement> outerListWire= new ArrayList<DeviceElement>(schematicImporter.listOfWires);List<DeviceElement> innerListWire = new ArrayList<DeviceElement>(schematicImporter.listOfWires);    List<DeviceElement> listWireTemp = new ArrayList<DeviceElement>();for (int j = 0; j < outerListWire.size(); j++) {    Wire wire1 = (Wire) outerListWire.get(j);    for (int i = 0; i < innerListWire.size(); i++) {        Wire wire2 = (Wire) innerListWire.get(i);        if (wire1.getEndPoint().getX() == wire2.getStartPoint().getX() && wire1.getEndPoint().getY() == wire2.getStartPoint().getY() ) {            if (!listWireTemp.contains(wire1)) {                listWireTemp.add(wire1);                System.out                .println("wire1 = " + wire1.getStartPoint().toString() + " = " + wire1.getEndPoint().toString());                innerListWire.remove(wire1);            }            if (!listWireTemp.contains(wire2)) {                listWireTemp.add(wire2);                System.out                .println("wire2 = " + wire2.getStartPoint().toString() + " = " + wire2.getEndPoint().toString());                innerListWire.remove(wire2);            }        }    }}我已經(jīng)嘗試過上面的代碼,但坐標(biāo)列表仍然沒有按順序排列。
查看完整描述

1 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

基于以下假設(shè)進(jìn)行更新:

  1. 問題中給出的第一行坐標(biāo)表示連接線集中第一條線的坐標(biāo)

  2. 找到第一組連接線后,問題中給出的剩余坐標(biāo)線中第一條未使用的線將被視為下一組連接線中第一條線的坐標(biāo),依此類推,直到問題中給出的坐標(biāo)列表為止問題排氣。

所需的邏輯在Main.java. 我還創(chuàng)建Point.javaLine.java測(cè)試了邏輯。如果您遇到任何問題,請(qǐng)隨時(shí)告訴我。

Point.java

public class Point {

    int x,y;


    public Point(int x, int y) {

        super();

        this.x = x;

        this.y = y;

    }

    public int getX() {

        return x;

    }


    public void setX(int x) {

        this.x = x;

    }


    public int getY() {

        return y;

    }


    public void setY(int y) {

        this.y = y;

    }

    @Override

    public String toString() {

        return "Point [x=" + x + ", y=" + y + "]";

    }   

}

Line.java


public class Line {

    int x1,y1,x2,y2;

    Point start,end;

    boolean used;

    public Line(int x1, int y1, int x2, int y2) {

        super();

        this.x1 = x1;

        this.y1 = y1;

        this.x2 = x2;

        this.y2 = y2;

    }

    public Line(Point start, Point end) {

        super();

        this.start = start;

        this.end = end;

    }

    public int getX1() {

        return x1;

    }

    public void setX1(int x1) {

        this.x1 = x1;

    }

    public int getY1() {

        return y1;

    }

    public void setY1(int y1) {

        this.y1 = y1;

    }

    public int getX2() {

        return x2;

    }

    public void setX2(int x2) {

        this.x2 = x2;

    }

    public int getY2() {

        return y2;

    }

    public void setY2(int y2) {

        this.y2 = y2;

    }

    public Point getStart() {

        return start;

    }

    public void setStart(Point start) {

        this.start = start;

    }

    public Point getEnd() {

        return end;

    }

    public void setEnd(Point end) {

        this.end = end;

    }

    public boolean isUsed() {

        return used;

    }

    public void setUsed(boolean used) {

        this.used = used;

    }

    @Override

    public String toString() {

        return "Line [x1=" + x1 + ", y1=" + y1 + ", x2=" + x2 + ", y2=" + y2 + "]";

    }   

}

Main.java


import java.util.ArrayList;

import java.util.List;


class Main {

    public static void main(String args[]) {

        List<Line> givenLines = new ArrayList<Line>();

        givenLines.add(new Line(3350, 1500, 3200, 1500));

        givenLines.add(new Line(1450, 1750, 1450, 2200));

        givenLines.add(new Line(1450, 2200, 2100, 2200));

        givenLines.add(new Line(2400, 2200, 2550, 2200));

        givenLines.add(new Line(2550, 2200, 2550, 2350));

        givenLines.add(new Line(2550, 2350, 2850, 2350));

        givenLines.add(new Line(2850, 2350, 2850, 2700));

        givenLines.add(new Line(2850, 2700, 3350, 2700));

        givenLines.add(new Line(3650, 2700, 3750, 2700));

        givenLines.add(new Line(3750, 2700, 3750, 2600));

        givenLines.add(new Line(3750, 2600, 5250, 2600));

        givenLines.add(new Line(5250, 2600, 5250, 2350));

        givenLines.add(new Line(5250, 2350, 5000, 2350));

        givenLines.add(new Line(4700, 2350, 4350, 2350));

        givenLines.add(new Line(4350, 2350, 4350, 1600));

        givenLines.add(new Line(4350, 1600, 3650, 1600));

        givenLines.add(new Line(3650, 1600, 3650, 1500));

        givenLines.add(new Line(3200, 1500, 3200, 1750));

        givenLines.add(new Line(3200, 1750, 1450, 1750));


        int linesIndex, usedCounter=0;

        List<List<Line>> listOfConnectedLines = new ArrayList<List<Line>>();


        //The start (first) line, in the list of given lines, to be processed to find the first set of connected lines

        Line startLineforTheNextSetOfConnectedLines=givenLines.get(0);

        startLineforTheNextSetOfConnectedLines.setUsed(true);

        usedCounter = 1;        


        //Process the list of given lines until all the lines have been used to form the connected lines

        while (usedCounter < givenLines.size()) {


            linesIndex = 0;         

            List<Line> connectedLines = new ArrayList<Line>();

            connectedLines.add(linesIndex, startLineforTheNextSetOfConnectedLines);     

            Line nextLine=null;


            //Starting with startLineforTheNextSetOfConnectedLines, the variable lastArrangedLine will hold the next lines qualifying to become the connected line 

            Line lastArrangedLine=startLineforTheNextSetOfConnectedLines;


            //Create the list of connected lines starting with startLineforTheNextSetOfConnectedLines

            for (int i = 0; i < givenLines.size(); i++) {

                for (int j = 0; j < givenLines.size(); j++) {

                    nextLine=givenLines.get(j);

                    if (!nextLine.isUsed() && lastArrangedLine.getX2() == nextLine.getX1()

                            && lastArrangedLine.getY2() == nextLine.getY1()) {

                        nextLine.setUsed(true);

                        usedCounter++;

                        connectedLines.add(++linesIndex, nextLine);

                        lastArrangedLine = nextLine;

                        break;

                    }

                }

            }


            //Add the list of connected lines (found from the above nested for loops) to the list of connected lines

            listOfConnectedLines.add(connectedLines);


            //Find the start (first) line for the next set of connected lines

            for (int i = 0; i < givenLines.size(); i++) {

                if(!givenLines.get(i).isUsed()) {

                    startLineforTheNextSetOfConnectedLines=givenLines.get(i);

                    startLineforTheNextSetOfConnectedLines.setUsed(true);

                    usedCounter++;                  

                    break;

                }

            }

        }


        //Display the lists of connected lines

        for(List<Line> connectedLines:listOfConnectedLines)

            System.out.println(connectedLines);

    }

}

給定行列表的輸出:


[Line [x1=3350, y1=1500, x2=3200, y2=1500], Line [x1=3200, y1=1500, x2=3200, y2=1750], Line [x1=3200, y1=1750, x2=1450, y2=1750], Line [x1=1450, y1=1750, x2=1450, y2=2200], Line [x1=1450, y1=2200, x2=2100, y2=2200]]

[Line [x1=2400, y1=2200, x2=2550, y2=2200], Line [x1=2550, y1=2200, x2=2550, y2=2350], Line [x1=2550, y1=2350, x2=2850, y2=2350], Line [x1=2850, y1=2350, x2=2850, y2=2700], Line [x1=2850, y1=2700, x2=3350, y2=2700]]

[Line [x1=3650, y1=2700, x2=3750, y2=2700], Line [x1=3750, y1=2700, x2=3750, y2=2600], Line [x1=3750, y1=2600, x2=5250, y2=2600], Line [x1=5250, y1=2600, x2=5250, y2=2350], Line [x1=5250, y1=2350, x2=5000, y2=2350]]

[Line [x1=4700, y1=2350, x2=4350, y2=2350], Line [x1=4350, y1=2350, x2=4350, y2=1600], Line [x1=4350, y1=1600, x2=3650, y2=1600], Line [x1=3650, y1=1600, x2=3650, y2=1500]]



查看完整回答
反對(duì) 回復(fù) 2023-10-13
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)