你好,复变函数1.0

news2024/11/27 18:49:58

 

 输入时用后缀,开头空格

#include <easyx.h>
#include <stdio.h>
#define PI 3.141592653589793
#define E  2.718281828459045
#define K  (1.0 / 256.0)
#define K_1 256.0
//#define LINE//决定函数是用线画还是用点画
struct C {
	double i;
	double r;
	C operator = (C n) {
		i = n.i; r = n.r;
		return C({ i, r });
	}
	C operator + (C n) {
		return C({ i + n.i, r + n.r });
	}
	C operator - (C n) {
		return C({ i - n.i, r - n.r });
	}
	C operator * (C n) {
		return C({ r * n.i + i * n.r, r * n.r - i * n.i});
	}
	C operator / (C n) {
		return C({
			(i * n.r - r * n.i) / (n.i * n.i - n.r * n.r),
			(i * n.i + r * n.r) / (n.i * n.i - n.r * n.r)
		});
	}
	void print() {
		printf("%lfi%+lf", i, r);
	}
};
int top = 0;
int len = 0;
int p[4096][2];
char str[512];
C stack[512];
void getnum(int l) {
	bool k = false;
	double x = 1.0;
	stack[top] = C({ 0, 0 });
	for (int i = l; str[i] != ' ' && str[i] != '\0'; i++) {
		if (k) x *= 10;
		if (str[i] != '.')
			stack[top] = stack[top] * C({ 0, 10 }) + C({ 0, double(str[i] - '0') });
		else k = true;
	}
	stack[top] = stack[top] / C({ 0, x });
	top++;
}
void del(C c) {
	for (int i = 0; str[i] != '\0'; i++) {
		if (str[i] == ' ') {
			i++;
			if (str[i] >= '0' && str[i] <= '9')
				getnum(i);
			if (str[i] == 'e')
				stack[top++] = C({ 0, E });
			if (str[i] == 'x')
				stack[top++] = c;
			if (str[i] == '+') {
				top--;
				stack[top - 1] = stack[top - 1] + stack[top];
			}
			if (str[i] == '-') {
				top--;
				stack[top - 1] = stack[top - 1] - stack[top];
			}
			if (str[i] == '*') {
				top--;
				stack[top - 1] = stack[top - 1] * stack[top];
			}
			if (str[i] == '/') {
				top--;
				stack[top - 1] = stack[top - 1] / stack[top];
			}
		}
	}
	p[len][0] = 512 + int(stack[0].r * K_1 + 0.5);
	p[len][1] = 512 - int(stack[0].i * K_1 + 0.5);
#ifndef LINE
	putpixel(p[len][0], p[len][1], RGB(0, 255, 255));
#endif
	len++;
}
int main() {
	initgraph(1024, 1024, EX_SHOWCONSOLE);
	setlinecolor(RGB(0, 255, 255));
	gets_s<512>(str);
	for (int y = -1024; y < 1024; y += 16) {
		len = 0;
		for (int x = -1024; x < 1024; x += 1) {
			top = 0;
			C c = { y * K, x * K };
			del(c);
		}
#ifdef LINE
		for (int i = 0; i < len - 1; i++) {
			line(p[i][0], p[i][1], p[i + 1][0], p[i + 1][1]);
		}
#endif
	}
	for (int y = -1024; y < 1024; y += 16) {
		len = 0;
		for (int x = -1024; x < 1024; x += 1) {
			top = 0;
			C c = { x * K, y * K };
			del(c);
		}
#ifdef LINE
		for (int i = 0; i < len - 1; i++) {
			line(p[i][0], p[i][1], p[i + 1][0], p[i + 1][1]);
		}
#endif
	}
	printf("%d", getchar());
	saveimage(L"1.jpg");
	closegraph();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1848578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同一天里,两位大厂程序员猝死。。。

2024年&#xff0c;真的不是平静的一年。在几天前&#xff0c;IT行业接连发生了两件不幸的事情。 6月17日下午&#xff0c;东南亚电商公司Sh**ee位于北京的研发中心&#xff0c;一位负责研发的女员工突然在工位上晕倒。 同事们赶紧拨打了120&#xff0c;然而还是没能抢救过来&a…

USB2.0网卡安装驱动

有三种安装方式&#xff1a; 驱动精灵驱动总裁USB2.0网卡自带安装程序 前两种很简单&#xff0c;下载驱动精灵或者驱动总裁&#xff0c;然后检测本地硬件&#xff0c;安装相应驱动。 本文重点要介绍的是第三种&#xff0c;利用USB2.0网卡自带的安装程序。有的时候驱动精灵或…

高考志愿填报,如何避免报错专业?

高考志愿填报绝对是关键一环节&#xff0c;分数高低暂且不论&#xff0c;因为这个填报志愿&#xff0c;大概率是决定了余生的职业&#xff0c;也有人说&#xff0c;大学可以转专业&#xff0c;毕业还可以跨行就业&#xff0c;工作了还可以转行.....确实有这个可能性&#xff0c…

如何生成protobuf文件

背景 protobuf是一种用于序列化结构数据的工具&#xff0c;实现数据的存储与交换&#xff0c;与编程语言和开发平台无关。 序列化&#xff1a;将结构数据或者对象转换成能够用于存储和传输的格式。 反序列化&#xff1a;在其他的计算环境中&#xff0c;将序列化后的数据还原为…

【React】AntD组件---极客园--01.项目前置准备

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

【鸿蒙】创建第⼀个鸿蒙项⽬

点击 Create Project 配置项目 开发工具界面 工程介绍

工业边缘计算网关

1 介绍 HINETG系列边缘计算网关&#xff08;Linux操作系统&#xff09;&#xff0c;是华辰智通的—款面向工业现场设备接入、数据采集、设备监控的工业级边缘计算网关。采用ARM Cortex-A7 800MHz高性能CPU,拥有以太网、串口、CAN口、IO口等丰富的接口&#xff0c;支持以太网、…

docker基础使用教程

1.准备工作 例子&#xff1a;工程在docker_test 生成requirements.txt文件命令&#xff1a;&#xff08;使用参考链接2&#xff09; pip list --formatfreeze > requirements.txt 参考链接1&#xff1a; 安装pipreqs可能比较困难 python 项目自动生成环境配置文件require…

教程:LVM操作讲解

LVM简介 在系统运维过程中&#xff0c;对磁盘扩缩容是常见的操作。如何高效的管理磁盘容量&#xff0c;lvm提供了很好的解决方案。 LVM将磁盘抽象成PV、VG、LV&#xff0c;方便用户进行磁盘管理&#xff0c;简单来讲&#xff0c;是由物理磁盘划分成PV&#xff0c;PV加入到具体…

Ubuntu 22.04.4 LTS openresty(Nginx) 通过Lua+Redis 实现动态封禁IP

1 系统环境 testiZbp1g7fmjea77vsqc5hmmZ:~$ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.4 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian HOME…

蓝桥杯 经典算法题 实现归并排序

题目&#xff1a; 题解&#xff1a; 不断地将数组不断向下平均分为两部分&#xff0c;直到每个子数组中元素数量为1&#xff0c;这样就可以将相邻两个数组长度为1的数组看作是单调数组合并为一个大的单调数组&#xff0c;如此不断向上合并出最终的单调数组。 #include <bi…

Golang | Leetcode Golang题解之第173题二叉搜索树迭代器

题目&#xff1a; 题解&#xff1a; type BSTIterator struct {stack []*TreeNodecur *TreeNode }func Constructor(root *TreeNode) BSTIterator {return BSTIterator{cur: root} }func (it *BSTIterator) Next() int {for node : it.cur; node ! nil; node node.Left {it…

jemeter基本使用

后端关验签&#xff0c;设置请求头编码和token 配置编码和token

用全志T113做了块多功能卡片电脑,成本只要60块

FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板&#xff0c;设计FunnyPi最初的目的是想借此T113卡片电脑来满足日常学习&#xff0c;并结合T113高效能和低功耗的特点&#xff0c;来满足像语音助手&#xff0c;智能家居屏幕、桌面摆件屏、博客服务器等嵌入…

激励-保健理论和公平理论

激励-保健理论 herzberg的激励-保健理论中&#xff0c;保健因素是context of a job&#xff0c;激励因素是content of a job。 context of a job是受组织控制的因素&#xff0c;比如工作条件&#xff0c;基本工资&#xff0c;公司政策等&#xff0c;个人无法支配。content of…

R语言——绘图与数据可视化

1、练习将25个点的符号绘制出来&#xff0c;然后用rainbow()返回25个颜色&#xff0c;后5个符号形状的背景颜色用蓝色填充&#xff0c;图的标题为"符号图"&#xff0c;x轴标题为符号索引&#xff0c;y轴标题为符号形状。 2、根据员工的销售业绩画饼状图&#xff0c;添…

Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试

目录 1. 简介 2. 实例测试 2.1 实例介绍 2.1 创建工程 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南-CSDN博客》一文中&#xff0c;我详尽地介绍了 OpenCV 的安装过程。尽管 Vitis Vision 库的实现本身并…

BioCLIP 生物界的图文对比模型

参考&#xff1a; https://imageomics.github.io/bioclip/ CLIP模型引入到生物领域&#xff0c;针对生物分类&#xff1a;界门纲目科属种&#xff0c;进行文本与图像的对比学习训练对其&#xff0c;可以快速对图像进行分类到可能的界门纲目科属种 在线体验&#xff1a; https:…

用户态协议栈04-定时arp-table的实现

之前有写过arp reply的实现&#xff0c;其中有写道&#xff0c;我们的系统内核中会维护一张ARP表&#xff0c;可以通过终端arp -a查看&#xff1a; 其中的dynamic和static是动态arp的类型&#xff0c;之前的udp实验就是添加了一条静态arp达到了发送的目的。在我们需要发送一个数…

「五度易链」企业大数据API接口开放平台上线啦!

“五度易链”企业大数据API接口开放平台现已正式上线&#xff0c;旨在为广大企业、开发者及个人提供标准、安全、高效、便捷的企业数据API接口服务&#xff0c;帮您更轻松地构建应用、扩展功能&#xff0c;并基于用户应用场景提供专属接口定制服务&#xff0c;助力企业提升研发…