就是这个样的粗爆,手搓一个计算器:数线计算器

       作为程序员,没有合适的工具,就得手搓一个,PC端,移动端均可适用。废话不多说,直接上代码。

HTML:

<div class="calculator"><div class="input-group"><label for="a">起始点 a:</label> <input id="a" step="any" type="number" placeholder="输入起始点"></div><div class="input-group"><label for="b">终止点 b:</label> <input id="b" step="any" type="number" placeholder="输入终止点"></div><div class="input-group"><label for="type">不等式类型:</label><select id="type"><option value="greater">大于</option><option value="less">小于</option><option value="greaterEqual">大于等于</option><option value="lessEqual">小于等于</option></select></div><div class="operations"><button onclick="drawNumberLine()">绘制数线</button></div><div class="result"><canvas id="numberLineCanvas" width="600" height="200"></canvas></div></div>

JS:

function drawNumberLine() {const canvas = document.getElementById('numberLineCanvas');const ctx = canvas.getContext('2d');const a = parseFloat(document.getElementById('a').value);const b = parseFloat(document.getElementById('b').value);const type = document.getElementById('type').value;if (isNaN(a) || isNaN(b)) {alert("请输入有效的数值。");return;}// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制数线ctx.beginPath();ctx.moveTo(50, 100);ctx.lineTo(canvas.width - 50, 100);ctx.strokeStyle = '#000';ctx.lineWidth = 2;ctx.stroke();// 绘制箭头ctx.beginPath();ctx.moveTo(canvas.width - 50, 90);ctx.lineTo(canvas.width - 40, 100);ctx.lineTo(canvas.width - 50, 110);ctx.fillStyle = '#000';ctx.fill();// 绘制刻度ctx.font = '12px Arial';ctx.textAlign = 'center';for (let i = 0; i <= canvas.width - 100; i += 50) {ctx.beginPath();ctx.moveTo(50 + i, 95);ctx.lineTo(50 + i, 105);ctx.stroke();ctx.fillText((i / 50).toFixed(0), 50 + i, 115);}// 绘制不等式ctx.fillStyle = 'rgba(255, 0, 0, 0.5)';if (type === 'greater') {ctx.fillRect(50 + (a * 50), 50, (b - a) * 50, 100);} else if (type === 'less') {ctx.fillRect(50, 50, (b - a) * 50, 100);} else if (type === 'greaterEqual') {ctx.fillRect(50 + (a * 50), 50, (b - a + 1) * 50, 100);} else if (type === 'lessEqual') {ctx.fillRect(50, 50, (b - a + 1) * 50, 100);}
}

CSS:

.calculator {
width: 100%;background-color: #333;color: white;padding: 20px;border-radius: 10px;box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}label {display: block;margin-bottom: 10px;font-size: 16px;
}input, select {width: 100%!important;padding: 10px!important;margin-bottom: 20px;color: #000000; border-radius: 5px;border: 1px solid #555;font-size: 16px!important;background-color: #ffffff!important;
}button {width: 100%;padding: 10px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 16px;display: block;margin: 0px;margin-bottom: 20px;margin-left: 0px!important;
}button:hover {background-color: orange;
}.result {margin-top: 20px;position: relative;
}option {background-color: #ffffff;
}p {font-size: 18px;margin-top: 5px!important;
}canvas {background-color: #e7f3fe;border: 1px solid #2196F3;border-radius: 5px;width:100%
}

线上运行,可以直接打开:数线计算器

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

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

相关文章

NSET or MSET算法--原理解析

1.背景 NSET/MSET是一种非线性的多元预测诊断技术&#xff0c;广泛应用于系统状态估计、故障诊断和预测等领域&#xff1b;相比于传统的线性模型和方法&#xff0c;NSET/MSET能够更好地处理非线性系统&#xff0c;并提供更准确的预测和诊断能力。在早期&#xff0c;MSET融合了…

NAS端最强音乐库,多平台服务支持。海康存储部署『Navidrome』

NAS端最强音乐库&#xff0c;多平台服务支持。海康存储部署『Navidrome』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 对于我们NAS用户&#xff0c;我们总是喜欢将自己喜欢的音乐资源通过下载的方式保存在本地&#xff0c;不过海康存储目前对因音乐的支持和管理实在过于薄弱&am…

Vue2+3

Day1 创建Vue实例 准备容器 引包 —— 开发版本 创建Vue实例 —— new Vue() 指定配置项 el 和 data > 渲染数据 el指定挂载点&#xff0c;指定控制的是哪个盒子 data提供数据 <!DOCTYPE html> <html lang"en"> <head><meta charset&qu…

AWTK-HarmonyOS NEXT 发布

AWTK 全称为 Toolkit AnyWhere&#xff0c;是 ZLG 倾心打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎&#xff0c;支持跨平台同步开发&#xff0c;一次编程&#xff0c;到处编译&#xff0c;跨平台使…

新闻稿件管理:SpringBoot框架实战指南

3系统分析 3.1可行性分析 通过对本新闻稿件管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻稿件管理系统采用SSM框架&#xff0c;JAVA作为开发语…

太炸裂了,Ollama跑本地模型已成为历史,现在都在使用这个工具,而且还能集成本地知识库

AI的发展速度真是超出我们的想象&#xff0c;遥想几个月前&#xff0c;我还在使用Ollama跑本地大模型&#xff0c;最近有另一款可以跑本地大模型的工具迅速崛起&#xff0c;在GitHub上已有70.3K Stars&#xff0c;相信不久就会超越Ollama&#xff0c;除了可以本地运行大模型之外…

在Vue和OpenLayers中使用移动传感器实现飞机航线飞行模拟

项目实现的核心代码 项目概述 该项目的目标是使用Vue.js作为前端框架&#xff0c;结合OpenLayers用于地图显示&#xff0c;实时获取来自手机传感器的数据&#xff08;如经纬度、高度、速度&#xff09;来模拟飞机在地图上的飞行轨迹。整体架构如下&#xff1a; Vue.js 用于构建…

Proteus中单片机IO口外接LED输出低电平时,引脚却一直保持高电平的问题(已解决)

文章目录 前言解决方法后记 前言 一个排阻接八个 LED&#xff0c;方便又省事&#xff0c;但出现了P1端口输出低电平后&#xff0c;仿真引脚却一直显示红色保持高电平不变&#xff0c;用电压表测量显示 2V 左右。 这是仿真的问题&#xff0c;在用开发板时是不会遇到的&#xff…

神经网络进行波士顿房价预测

前言 前一阵学校有五一数模节校赛&#xff0c;和朋友一起参加做B题&#xff0c;波士顿房价预测&#xff0c;算是第一次自己动手实现一个简单的小网络吧&#xff0c;虽然很简单&#xff0c;但还是想记录一下。 题目介绍 波士顿住房数据由哈里森和鲁宾菲尔德于1978年Harrison …

一分钟讲透聚合SDK的工作原理

聚合 SDK 广告是指通过整合多个广告 SDK&#xff08;软件开发工具包&#xff09;&#xff0c;将来自不同广告平台和渠道的广告资源集中管理和调配&#xff0c;并在应用或平台中展示和投放的一种广告模式。 使用聚合 SDK 可以让开发者或广告运营者更方便地接入多种广告源&#…

Visual Studio | 配置管理

文章目录 一、配置管理1、项目属性1.1、常规1.2、VC 目录1.3、C/C -> 常规1.4、C/C -> 预处理器1.5、C/C -> 预编译头1.6、连接器 -> 常规1.7、连接器 -> 输入 2、编辑2.1、显示空格或tab符 一、配置管理 1、项目属性 1.1、常规 字段功能目标平台版本用于生成…

yolov8涨点系列之增加检测头

文章目录 检测头对于目标检测的作用特征转换与信息提取多尺度目标适应预测与定位损失计算与模型优化 YOLOv8的检测头介绍结构组成特征提取层上采样层特征融合层检测层 工作原理锚点机制优化策略自适应空间特征融合&#xff08;ASFF&#xff09;焦点损失&#xff08;Focal Loss&…

django-tidb版本说明

django-tidb 版本说明 https://github.com/pingcap/django-tidb django-python版本说明 Django 4.2 版本发行说明 | Django 文档 | Django

单元/集成测试解决方案

在项目开发的前期针对软件单元/模块功能开展单元/集成测试&#xff0c;可以尽早地发现软件Bug&#xff0c;避免将Bug带入系统测试阶段&#xff0c;有效地降低HIL测试的测试周期&#xff0c;也能有效降低开发成本。单元/集成测试旨在证明被测软件实现其单元/架构设计规范、证明被…

GOT-OCR:开源免费的OCR项目,多语言多模态识别,端到端识别新体验!不仅能识别文字,连数学公式、图表都不在话下!

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 GOT-OCR2.0是开源端到端模型&#xff0c;实现OCR技术的重大突破。它不仅能够识别标准字体&#xff0c;还能应对各种复杂场景下的文本识别任务&#xf…

打开cmd窗口并执行cmd命令的Windows脚本(.bat文件)

打开cmd窗口并执行cmd命令的Windows脚本(.bat文件) 文章目录 打开cmd窗口并执行cmd命令的Windows脚本(.bat文件) 由于需要频繁在cmd窗口中输入命令设置ssh隧道转发&#xff0c;因此考虑编写一个脚本实现。 参考文章&#xff1a;写一个打开cmd窗口并执行cmd命令的Windows脚本&am…

LabVIEW for Linux 介绍

LabVIEW for Linux 介绍 1. 兼容性 LabVIEW for Linux 设计用于多种 Linux 发行版&#xff0c;包括 CentOS、Ubuntu 等。在安装之前&#xff0c;务必检查与您特定发行版版本的兼容性。 2. 程序移植 可移植性&#xff1a;在许多情况下&#xff0c;LabVIEW 程序&#xff08;VI…

W6100-EVB-Pico2评估板介绍

目录 1 简介 2 硬件资源 2.1 硬件规格 2.2 引脚定义 2.3 工作条件 3 参考资料 3.1 RP2350 数据表 3.2 W6100 数据表 3.3 原理图 原理图 & 物料清单 & Gerber 文件 3.3 尺寸图&#xff08;尺寸&#xff1a;mm&#xff09; 3.4 参考例程 认证 CE FCC 4 硬…

7.2、实验二:被动接口和单播更新

源文件链接&#xff1a; 7.2、实验二&#xff1a;被动接口和单播更新: https://url02.ctfile.com/d/61945102-63671890-6af6ec?p2707 (访问密码: 2707) 一、被动接口 1.介绍 定义: 在路由协议的配置中&#xff0c;一个被动接口指的是一个接口不发送路由更新包的配置方式&a…

前端用docker部署

1、环境检查 首先需要确认服务器上是否已经安装docker了。 在服务器上执行docker -v 显示对应的版本号说明已经安装好了docker 2、部署 使用Docker部署若依项目的前端服务&#xff0c;我们最终实现的是&#xff1a;启动一个镜像&#xff0c;我们的整个前端就启动了&#xf…