3293
- 收藏
- 点赞
- 分享
- 举报
这是一个“利用递归绘画分形图案”的代码
这是一个“利用递归绘画分形图案”的代码,但是怎么写才能把它画出来呢?
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class mouse implements MouseListener {
// int[][] points = new int[3][2];
int[][] points = new int[2][2];
int temp = 0;
double arg = Math.PI / 3;
int length = 15;
Graphics g;
public void setGraphics(Graphics g) {
this.g = g;
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
points[temp][0] = e.getX();
points[temp][1] = e.getY();
temp++;
if (temp == 2) {
int x1 = points[0][0];
int y1 = points[0][1];
int x2 = points[1][0];
int y2 = points[1][1];
draw(x1, y1, x2, y2, length);
temp %= 2;
}
}
public void draw(int x1, int y1, int x3, int y3, int num) {
int x4 = (x1 + y1 + x3 - y3) / 2;
int y4 = (-x1 + y1 + x3 + y3) / 2;
int x2 = (x1 - y1 + x3 + y3) / 2;
int y2 = (x1 + y1 - x3 + y3) / 2;
g.drawLine(x1, y1, x2, y2);
g.drawLine(x2, y2, x3, y3);
g.drawLine(x3, y3, x4, y4);
g.drawLine(x4, y4, x1, y1);
num--;
if (num <= 0)
return;
double r = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) / 2;
int x = (int) ((x1 * (1 / Math.tan(Math.PI / 2 - arg)) + x2 * (1 / Math.tan(arg)) + y2 - y1)
/ ((1 / Math.tan(arg)) + (1 / Math.tan(Math.PI / 2 - arg))));
int y = (int) ((y1 * (1 / Math.tan(Math.PI / 2 - arg)) + y2 * (1 / Math.tan(arg)) + x1 - x2)
/ ((1 / Math.tan(arg)) + (1 / Math.tan(Math.PI / 2 - arg))));
int tx1 = x1 - y1 + y;
int ty1 = x1 + y1 - x;
int tx2 = x - y + y2;
int ty2 = x + y - x2;
draw(tx1, ty1, x, y, num);
draw(tx2, ty2, x2, y2, num);
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2018-06-13 22:50:45
-
2022-10-13 10:04:52
-
2019-01-29 15:20:06
-
2019-01-09 10:02:05
-
2018-11-08 16:32:10
-
2022-05-11 10:02:51
-
2018-12-15 10:15:11
-
2016-10-27 17:50:12
-
2020-12-29 15:50:47
-
2019-02-18 16:01:23
-
2018-10-12 11:18:55
-
2019-07-19 11:03:32
-
2014-11-12 18:34:34
-
2021-02-18 14:49:56
-
2019-01-03 16:45:54
-
2018-12-06 16:11:42
-
2018-11-30 10:56:21
-
2018-12-21 13:58:48
-
2018-12-13 11:03:09
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
-
10求HI3519DV500_SDK_V2.0.1.1
-
5有偿求HI3516DV500 + OV5647驱动
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认