📄 re2enfa.java
字号:
col++;
if(col == 5){
col=0;
row++;
}
i++;
}
//////////////////////////////////////////
}
public int[][] getArray(){
return DFA;
}
public String functionRE(String RE){
return "<text font-size=\"18\" style=\"fill:#150517;\" x=\""+(initx)+"\" y=\""+(inity+200)+"\">"+RE+"</text>\"\n";
}
public String drawCircle(int[][] a){
circle ="";
// circle = "<circle cx=\""+(initx)+"\" cy=\""+inity+"\" r=\"20\" stroke=\"black\" stroke-width=\"1\" fill=\"pink\"/>\n"
// + "<text font-size=\"18\" style=\"fill:#150517;\" x=\""+(initx-9)+"\" y=\""+(inity+6)+"\">"+"S"+(0)+"</text>\"\n";
for(int i=0;i<a.length;i++){
if( a[i][0] != 0){
circle += "<circle cx=\""+(initx+(a[i][0]-1)*100)+"\" cy=\""+inity+"\" r=\"20\" stroke=\"black\" stroke-width=\"1\" fill=\"pink\"/>\n"
+ "<text font-size=\"18\" style=\"fill:#150517;\" x=\""+(initx+(a[i][0]-1)*100-9)+"\" y=\""+(inity+6)+"\">"+"S"+(a[i][0]-1)+"</text>\"\n";
for(int j=0 ; j<a.length ;j++){
if(a[j][1] ==1){
// System.out.println("final :"+a[j][0]+" :"+j);
circle += "<circle cx=\""+(initx+(a[j][0]-1)*100)+"\" cy=\""+inity+"\" r=\"20\" stroke=\"black\" stroke-width=\"1\" fill=\"pink\"/>\n"
+ "<circle cx=\""+(initx+(a[j][0]-1)*100)+"\" cy=\""+inity+"\" r=\"16\" stroke=\"black\" stroke-width=\"1\" fill=\"white\"/>\n"
+ "<text font-size=\"18\" style=\"fill:#150517;\" x=\""+(initx+(a[j][0]-1)*100-9)+"\" y=\""+(inity+6)+"\">"+"S"+(a[j][0]-1)+"</text>\"\n";
}
}
}
}
return circle;
}
public String drawTransport(int[][] a){
transport ="";
int cross=0;
int n =0;
transport ="<line x1=\""+(5)+"\" y1=\""+(inity)
+"\" x2=\""+(30)+"\" y2=\""+(inity)
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n";
for(int i=0; i<a.length ; i++){
/////case input 0 ///
if(a[i][2] != 0){
if(a[i][0]<a[i][2] ){
cross =a[i][2] -a[i][0];
if(cross == 1){
if(a[i][2] == a[i][3] ){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100+cx(cross))+"\" y1=\""+(inity-cy(cross))
+"\" x2=\""+(initx+(a[i][2]-1)*100-cx(cross))+"\" y2=\""+(inity-cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-5)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<line x1=\""+(initx+(a[i][0]-1)*100+cx(cross))+"\" y1=\""+(inity-cy(cross))
+"\" x2=\""+(initx+(a[i][2]-1)*100-cx(cross))+"\" y2=\""+(inity-cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-5)+"\">"
+0+"</text>\"\n";
}
}else{
if(a[i][2] == a[i][3] ){
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100+cx(cross))+" "+(inity-cy(cross))
+" C"+(initx+(a[i][0]-1)*100+cross*40)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][0]-1)*100+cross*60)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][2]-1)*100-cx(cross))+" "+(inity-cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-cross*16-16)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100+cx(cross))+" "+(inity-cy(cross))
+" C"+(initx+(a[i][0]-1)*100+cross*40)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][0]-1)*100+cross*60)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][2]-1)*100-cx(cross))+" "+(inity-cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-cross*16-16)+"\">"
+0+"</text>\"\n";
}
}
}
if(a[i][0]>a[i][2] ){
cross =a[i][0]-a[i][2];
if(cross == 1){
if(a[i][2] == a[i][3] ){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100-cx(cross))+"\" y1=\""+(inity+cy(cross))
+"\" x2=\""+(initx+(a[i][2]-1)*100+cx(cross))+"\" y2=\""+(inity+cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][2]-1)*100+cross*48)+"\" y=\""+(inity+10)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<line x1=\""+(initx+(a[i][0]-1)*100-cx(cross))+"\" y1=\""+(inity+cy(cross))
+"\" x2=\""+(initx+(a[i][2]-1)*100+cx(cross))+"\" y2=\""+(inity+cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][2]-1)*100+cross*48)+"\" y=\""+(inity+10)+"\">"
+0+"</text>\"\n";
}
}else{
if(a[i][2] == a[i][3] ){
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(cross))+" "+(inity+cy(cross))
+" C"+(initx+(a[i][2]-1)*100+cross*60)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][2]-1)*100+cross*40)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][2]-1)*100+cx(cross))+" "+(inity+cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][2]-1)*100+cross*48)+"\" y=\""+(inity+cross*16+21)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(cross))+" "+(inity+cy(cross))
+" C"+(initx+(a[i][2]-1)*100+cross*60)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][2]-1)*100+cross*40)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][2]-1)*100+cx(cross))+" "+(inity+cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][2]-1)*100+cross*48)+"\" y=\""+(inity+cross*16+21)+"\">"
+0+"</text>\"\n";
}
}
}
}
if(a[i][3] != 0){
/////case input 1 ////
if(a[i][0]<a[i][3] ){
cross =a[i][3] -a[i][0];
if(cross == 1){
if(a[i][2] == a[i][3] ){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100+cx(cross))+"\" y1=\""+(inity-cy(cross))
+"\" x2=\""+(initx+(a[i][3]-1)*100-cx(cross))+"\" y2=\""+(inity-cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-5)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<line x1=\""+(initx+(a[i][0]-1)*100+cx(cross))+"\" y1=\""+(inity-cy(cross))
+"\" x2=\""+(initx+(a[i][3]-1)*100-cx(cross))+"\" y2=\""+(inity-cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-5)+"\">"
+1+"</text>\"\n";
}
}else{
if(a[i][2] == a[i][3] ){
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100+cx(cross))+" "+(inity-cy(cross))
+" C"+(initx+(a[i][0]-1)*100+cross*40)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][0]-1)*100+cross*60)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][3]-1)*100-cx(cross))+" "+(inity-cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-cross*16-16)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100+cx(cross))+" "+(inity-cy(cross))
+" C"+(initx+(a[i][0]-1)*100+cross*40)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][0]-1)*100+cross*60)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][3]-1)*100-cx(cross))+" "+(inity-cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-cross*16-16)+"\">"
+1+"</text>\"\n";
}
}
}
if(a[i][0]>a[i][3] ){
cross =a[i][0]-a[i][3];
if(cross == 1){
if(a[i][2] == a[i][3] ){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100-cx(cross))+"\" y1=\""+(inity+cy(cross))
+"\" x2=\""+(initx+(a[i][3]-1)*100+cx(cross))+"\" y2=\""+(inity+cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][3]-1)*100+cross*48)+"\" y=\""+(inity+10)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<line x1=\""+(initx+(a[i][0]-1)*100-cx(cross))+"\" y1=\""+(inity+cy(cross))
+"\" x2=\""+(initx+(a[i][3]-1)*100+cx(cross))+"\" y2=\""+(inity+cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][3]-1)*100+cross*48)+"\" y=\""+(inity+10)+"\">"
+1+"</text>\"\n";
}
}else{
if(a[i][2] == a[i][3] ){
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(cross))+" "+(inity+cy(cross))
+" C"+(initx+(a[i][3]-1)*100+cross*60)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][3]-1)*100+cross*40)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][3]-1)*100+cx(cross))+" "+(inity+cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][3]-1)*100+cross*48)+"\" y=\""+(inity+cross*16+21)+"\">"
+"0/1"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(cross))+" "+(inity+cy(cross))
+" C"+(initx+(a[i][3]-1)*100+cross*60)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][3]-1)*100+cross*40)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][3]-1)*100+cx(cross))+" "+(inity+cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][3]-1)*100+cross*48)+"\" y=\""+(inity+cross*16+21)+"\">"
+1+"</text>\"\n";
}
}
}
}
if(a[i][4] != 0){
/// case input = epsilon ///
if(a[i][0]<a[i][4] ){
cross =a[i][4] -a[i][0];
if(cross == 1){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100+cx(cross))+"\" y1=\""+(inity-cy(cross))
+"\" x2=\""+(initx+(a[i][4]-1)*100-cx(cross))+"\" y2=\""+(inity-cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"12\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-5)+"\">"
+"e"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100+cx(cross))+" "+(inity-cy(cross))
+" C"+(initx+(a[i][0]-1)*100+cross*40)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][0]-1)*100+cross*60)+" "+(inity-cross*20-20)+" "
+(initx+(a[i][4]-1)*100-cx(cross))+" "+(inity-cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"12\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100+cross*48)+"\" y=\""+(inity-cross*16-16)+"\">"
+"e"+"</text>\"\n";
}
}
if(a[i][0]>a[i][4] ){
cross =a[i][0]-a[i][4];
if(cross == 1){
transport +="<line x1=\""+(initx+(a[i][0]-1)*100-cx(cross))+"\" y1=\""+(inity+cy(cross))
+"\" x2=\""+(initx+(a[i][4]-1)*100+cx(cross))+"\" y2=\""+(inity+cy(cross))
+"\" style=\"stroke-width:1; stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"12\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][4]-1)*100+cross*48)+"\" y=\""+(inity+10)+"\">"
+"e"+"</text>\"\n";
}else{
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(cross))+" "+(inity+cy(cross))
+" C"+(initx+(a[i][4]-1)*100+cross*60)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][4]-1)*100+cross*40)+" "+(inity+cross*20+20)+" "
+(initx+(a[i][4]-1)*100+cx(cross))+" "+(inity+cy(cross))
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n"
+"<text font-size=\"12\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][4]-1)*100+cross*48)+"\" y=\""+(inity+cross*16+21)+"\">"
+"e"+"</text>\"\n";
}
}
}
// case state same case
if(a[i][0]==a[i][2] || a[i][0]==a[i][3]){
transport +="<path d=\"M"+(initx+(a[i][0]-1)*100-cx(7))+" "+(inity-20)
+" C"+(initx+(a[i][0]-1)*100-20)+" "+(inity-40)+" "
+(initx+(a[i][0]-1)*100+20)+" "+(inity-40)+" "
+(initx+(a[i][0]-1)*100+cx(7))+" "+(inity-20)
+"\" style=\"fill:none;stroke-width:1;stroke:black;marker-end:url(#transport)\"/>\n";
if(a[i][0] == a[i][2] && a[i][0]== a[i][3]){
transport +="<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100-4)+"\" y=\""+(inity-37)+"\">"
+"0/1"+"</text>\"\n";
}else if(a[i][0] == a[i][2]){
transport +="<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100-2)+"\" y=\""+(inity-37)+"\">"
+"0"+"</text>\"\n";
}else{
transport +="<text font-size=\"10\" style=\"fill:darkred;\" x=\""
+(initx+(a[i][0]-1)*100-2)+"\" y=\""+(inity-37)+"\">"
+"1"+"</text>\"\n";
}
}
}
return transport;
}
public double cx(int p){
if(p>7){
p = 7%p;
}
px= 20*Math.cos(Math.PI*p/16);
return px;
}
public double cy(int p){
if(p >7){
p = 7%p;
}
py =20*Math.sin(Math.PI*p/16);
return py;
}
public void write(String filePath, String text) {
File file = new File(filePath);
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
fileWriter.write(text);
fileWriter.flush();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (fileWriter != null) {
try {
fileWriter.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -