当前位置: 首页 > news >正文

政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例

目录

Cusor的主要特点

Cusor实操


政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

Cursor 是 Visual Studio Code 的一个分支。这使我们能够专注于创造使用人工智能进行编码的最佳方式,同时提供熟悉的文本编辑体验。

Cusor的主要特点

Cursor 编辑器是一款功能强大的代码编辑器,主要有以下特点:

一、编程辅助功能

  • 智能代码补全
    • 它能够根据编程语言的语法规则和上下文,自动补全代码片段。例如,在编写 Python 程序时,当你输入一个函数的开头几个字母,如 “pri”,它会自动提示 “print ()” 这个函数,这大大提高了编码效率,减少了手动输入代码的时间和出错的概率。
  • 代码生成
    • Cursor 可以根据自然语言描述生成代码。比如,你输入 “写一个函数来计算两个数的和”,它能够生成类似以下 Python 代码:
def add_numbers(a, b):return a + b
  • 对于复杂的算法或者特定的编程任务,这种代码生成功能可以为程序员提供一个很好的起点,他们可以在生成代码的基础上进行修改和完善。

二、支持多种编程语言

  • 它支持广泛的编程语言,包括但不限于 Python、Java、JavaScript、C++、C# 等。
    • 对于 Web 开发人员,他们可以使用 Cursor 编写前端的 JavaScript 和 CSS 代码,同时也能处理后端的 Python(如使用 Flask 或 Django 框架)或者 Java 代码。对于游戏开发者,在编写 C++ 或 C# 游戏逻辑代码时,也能借助 Cursor 来提高开发效率。

三、界面和使用体验

  • 简洁直观的界面
    • 其界面设计简洁,易于新手学习和上手。工具栏和菜单布局合理,代码编辑区域清晰,能够让用户专注于代码编写。例如,代码的语法高亮显示可以让不同类型的代码元素(如变量、函数、关键字等)以不同的颜色区分开来,增强了代码的可读性。
  • 方便的文件管理
    • 可以方便地在编辑器中打开、保存和管理文件。用户能够轻松地在不同的项目文件夹之间切换,并且可以快速地查找和打开特定的代码文件。

这是官网:https://www.cursor.com/

安装工具后,进行。


Cusor实操

使用AI编程一个3D骰子的H5程序:

描述:

基于three.js框架开发一个支持鼠标和触屏的科幻风3D骰子程序,支持屏幕缩放,骰子落入地面后,与地面齐平,符合物理规律,朝上的面随机显示数字,两个骰子朝上面的数字不能总是完全一样,骰子在空中旋转时速度适中,不能太慢,但可以让玩家看到数字变化的过程。

生成代码如下:

<!DOCTYPE html>
<html>
<head><title>3D 科幻骰子</title><style>body { margin: 0; }canvas { display: block; }#info {position: absolute;top: 10px;width: 100%;text-align: center;color: white;}</style>
</head>
<body><div id="info">点击骰子进行投掷,滚轮或双指缩放</div><script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script><script>let scene, camera, renderer;let dice1, dice2;let isRolling = false;let floor;init();animate();function init() {// 场景设置scene = new THREE.Scene();scene.background = new THREE.Color(0x000000);// 相机设置camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);camera.position.z = 10;camera.position.y = 5;camera.lookAt(0, 0, 0);// 渲染器设置renderer = new THREE.WebGLRenderer({ antialias: true });renderer.setSize(window.innerWidth, window.innerHeight);renderer.shadowMap.enabled = true;document.body.appendChild(renderer.domElement);// 灯光设置const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);scene.add(ambientLight);const pointLight = new THREE.PointLight(0xffffff, 1);pointLight.position.set(10, 10, 10);pointLight.castShadow = true;scene.add(pointLight);// 创建地面const floorGeometry = new THREE.PlaneGeometry(20, 20);const floorMaterial = new THREE.MeshPhongMaterial({ color: 0x404040,side: THREE.DoubleSide});floor = new THREE.Mesh(floorGeometry, floorMaterial);floor.rotation.x = -Math.PI / 2;floor.position.y = -2;floor.receiveShadow = true;scene.add(floor);// 创建骰子createDice();// 添加点击事件renderer.domElement.addEventListener('click', rollDice);// 添加缩放事件renderer.domElement.addEventListener('wheel', onZoom);renderer.domElement.addEventListener('touchstart', onTouchStart);renderer.domElement.addEventListener('touchmove', onTouchMove);// 窗口大小调整window.addEventListener('resize', onWindowResize, false);}let touchStartDistance = 0;function onTouchStart(event) {if (event.touches.length === 2) {const dx = event.touches[0].pageX - event.touches[1].pageX;const dy = event.touches[0].pageY - event.touches[1].pageY;touchStartDistance = Math.sqrt(dx * dx + dy * dy);}}function onTouchMove(event) {if (event.touches.length === 2) {const dx = event.touches[0].pageX - event.touches[1].pageX;const dy = event.touches[0].pageY - event.touches[1].pageY;const distance = Math.sqrt(dx * dx + dy * dy);const delta = distance - touchStartDistance;camera.position.z = Math.max(5, Math.min(15, camera.position.z - delta * 0.01));touchStartDistance = distance;}}function onZoom(event) {const delta = event.deltaY;camera.position.z = Math.max(5, Math.min(15, camera.position.z + delta * 0.01));}function createDice() {const geometry = new THREE.BoxGeometry(2, 2, 2);const materials = [];// 创建骰子材质for (let i = 0; i < 6; i++) {const canvas = document.createElement('canvas');canvas.width = 128;canvas.height = 128;const context = canvas.getContext('2d');context.fillStyle = '#000000';context.fillRect(0, 0, 128, 128);context.fillStyle = '#00ffff';context.font = '80px Arial';context.textAlign = 'center';context.textBaseline = 'middle';context.fillText(i + 1, 64, 64);const texture = new THREE.CanvasTexture(canvas);materials.push(new THREE.MeshPhongMaterial({ map: texture, transparent: true,emissive: 0x00ffff,emissiveIntensity: 0.2}));}// 创建两个骰子dice1 = new THREE.Mesh(geometry, materials);dice2 = new THREE.Mesh(geometry, materials);dice1.position.set(-2, 3, 0);dice2.position.set(2, 3, 0);dice1.castShadow = true;dice2.castShadow = true;// 添加点光源作为骰子的光晕效果const dice1Light = new THREE.PointLight(0x00ffff, 0.5, 3);const dice2Light = new THREE.PointLight(0x00ffff, 0.5, 3);dice1Light.position.copy(dice1.position);dice2Light.position.copy(dice2.position);scene.add(dice1Light);scene.add(dice2Light);scene.add(dice1);scene.add(dice2);}function rollDice() {if (isRolling) return;isRolling = true;// 重置骰子位置dice1.position.y = 3;dice2.position.y = 3;// 为每个骰子生成随机的最终旋转角度const finalRotation1 = {x: Math.floor(Math.random() * 4) * (Math.PI / 2),y: Math.floor(Math.random() * 4) * (Math.PI / 2),z: Math.floor(Math.random() * 4) * (Math.PI / 2)};const finalRotation2 = {x: Math.floor(Math.random() * 4) * (Math.PI / 2),y: Math.floor(Math.random() * 4) * (Math.PI / 2),z: Math.floor(Math.random() * 4) * (Math.PI / 2)};const duration = 2000;const start = Date.now();const gravity = -9.8;const initialVelocity = 2;let velocity = initialVelocity;function animate() {const elapsed = Date.now() - start;const progress = elapsed / duration;if (progress < 1) {// 应用重力velocity += gravity * 0.016;dice1.position.y = Math.max(-1, dice1.position.y + velocity * 0.016);dice2.position.y = Math.max(-1, dice2.position.y + velocity * 0.016);// 旋转 - 速度增加3倍if (dice1.position.y > -1) {dice1.rotation.x += 0.6;dice1.rotation.y += 0.9;dice1.rotation.z += 0.3;}if (dice2.position.y > -1) {dice2.rotation.x += 0.9;dice2.rotation.y += 0.6;dice2.rotation.z += 0.45;}// 碰撞检测if (dice1.position.y <= -1) {velocity = Math.abs(velocity) * 0.5;dice1.rotation.x = finalRotation1.x;dice1.rotation.y = finalRotation1.y;dice1.rotation.z = finalRotation1.z;dice2.rotation.x = finalRotation2.x;dice2.rotation.y = finalRotation2.y;dice2.rotation.z = finalRotation2.z;}requestAnimationFrame(animate);} else {// 停止时确保骰子是平放的dice1.position.y = -1;dice2.position.y = -1;dice1.rotation.x = finalRotation1.x;dice1.rotation.y = finalRotation1.y;dice1.rotation.z = finalRotation1.z;dice2.rotation.x = finalRotation2.x;dice2.rotation.y = finalRotation2.y;dice2.rotation.z = finalRotation2.z;isRolling = false;}}animate();}function animate() {requestAnimationFrame(animate);renderer.render(scene, camera);}function onWindowResize() {camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize(window.innerWidth, window.innerHeight);}</script>
</body>
</html>

效果图如下:

增加修改为:

请更改骰子中的数字颜色为科技红色。

全选代码,Ctrl+K,输入提示,Ctrl+回车,接受预览。

不满意?修改!

把骰子的颜色再变得对比强烈一些

            const floorMaterial = new THREE.MeshPhongMaterial({ color: 0x202020,  // 地面颜色调暗

 

魔化了,嘻嘻。

OK,产品经理的春天来了,世界仿佛一下子变得安静了。

相关文章:

政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例

目录 Cusor的主要特点 Cusor实操 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; Cursor 是 Visual Studio Code 的一个分支。这使我们能够…...

CentOS 7 安装部署 KVM

1.关闭虚拟机 打开相关选项 打开虚拟机centos7 连接xshell 测试网络&#xff0c;现在就是没问题的&#xff0c;因为我们要使用网络源 安装 GNOME 桌面环境 安装KVM 模块 安装KVM 调试工具 构建虚拟机的命令行工具 qemu 组件,创建磁盘、启动虚拟机等 输入这条命令&#xff0c;…...

ArcGIS 10.2软件安装包下载及安装教程!

今日资源&#xff1a;ArcGIS 适用系统&#xff1a;WINDOWS 软件介绍&#xff1a;ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成地…...

一个专为云原生环境设计的高性能分布式文件系统

大家好&#xff0c;今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS&#xff0c;旨在解决海量云存储与各类应用平台&#xff08;如大数据、机器学习、人工智能等&#xff09;之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…...

基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码

文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…...

3174、清除数字

3174、[简单] 清除数字 1、题目描述 给你一个字符串 s 。你的任务是重复以下操作删除 所有 数字字符&#xff1a; 删除 第一个数字字符 以及它左边 最近 的 非数字 字符。 请你返回删除所有数字字符以后剩下的字符串。 2、解题思路 遍历字符串&#xff1a; 我们需要逐个遍…...

C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)

目录 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口&#xff08;同向双指针&#xff09; 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目&#xff1a; 无重复字符的最长子串 1. 题目解析 题目截图&#xff1a; 此题所说的…...

ADS学习笔记 6. 射频发射机设计

基于ADS2023 update2 更多ADS学习笔记&#xff1a;ADS学习笔记 1. 功率放大器设计ADS学习笔记 2. 低噪声放大器设计ADS学习笔记 3. 功分器设计ADS学习笔记 4. 微带分支定向耦合器设计ADS学习笔记 5. 微带天线设计 -1、射频发射机性能指标 在射频电路和系统中&#xff0c;发送…...

上海乐鑫科技一级代理商飞睿科技,ESP32-C61高性价比WiFi6芯片高性能、大容量

在当今快速发展的物联网市场中&#xff0c;无线连接技术的不断进步对智能设备的性能和能效提出了更高要求。为了满足这一需求&#xff0c;乐鑫科技推出了ESP32-C61——一款高性价比的Wi-Fi 6芯片&#xff0c;旨在为用户设备提供更出色的物联网性能&#xff0c;并满足智能设备连…...

QT QRadioButton控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...

51单片机从入门到精通:理论与实践指南(一)

单片机在智能控制领域的应用已非常普遍&#xff0c;发展也很迅猛&#xff0c;学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出&#xff0c;但51单片机价格低廉、易学易用、性能成熟&#xff0c;在家电和工业控制中有一定的应用&#xff0c;而且学好了51单片机&…...

零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu

1.为啥使用Linux做嵌入式开发 能广泛支持硬件 内核比较高效稳定 原码开放、软件丰富 能够完善网络通信与文件管理机制 优秀的开发工具 2.什么是Ubuntu 是一个以桌面应用为主的Linux的操作系统&#xff0c; 内核是Linux操作系统&#xff0c; 具有Ubuntu特色的可视…...

C#中面试的常见问题007

1.在EF中实现一个实体对应多个表 1. 表拆分&#xff08;Table Splitting&#xff09; 表拆分是指将一个实体映射到两个或多个表中的行。这通常发生在实体的属性分布在不同的表中&#xff0c;但这些表通过外键关联到同一个主表。在EF Core中&#xff0c;可以通过Fluent API来配…...

人工智能——大语言模型

5. 大语言模型 5.1. 语言模型历史 20世纪90年代以前的语言模型都是基于语法分析这种方法&#xff0c;效果一直不佳。到了20世纪90年代&#xff0c;采用统计学方法分析语言&#xff0c;取得了重大进展。但是在庞大而复杂的语言信息上&#xff0c;基于传统统计的因为计算量巨大…...

nodejs第三方库sharp对图片的操作生成新图片、压缩、添加文字水印及图片水印等

Sharp是一个基于libvips的高性能Node.js图像处理库&#xff0c;它提供了广泛的功能&#xff0c;包括调整大小、裁剪、旋转、格式转换等。Sharp可以处理多种图像格式&#xff0c;并且能够高效地转换图像格式。 相关说明及用法看&#xff1a;https://sharp.nodejs.cn/ 安装&#…...

力扣第 67 题 “二进制求和”

题目描述 给你两个二进制字符串 a 和 b&#xff0c;以二进制字符串的形式返回它们的和。 示例 1: 输入: a "11", b "1" 输出: "100"示例 2: 输入: a "1010", b "1011" 输出: "10101"提示: 每个字符串仅由…...

Spring Boot优雅读取配置信息 @EnableConfigurationProperties

很多时候我们需要将一些常用的配置信息比如oss等相关配置信息放到配置文件中。常用的有以下几种&#xff0c;相信大家比较熟悉&#xff1a; 1、Value(“${property}”) 读取比较简单的配置信息&#xff1a; 2、ConfigurationProperties(prefix “property”)读取配置信息并与 …...

鸿蒙多线程开发——Sendable对象的序列化与冻结操作

1、Sendable对象的序列化与反序列化 Sendable对象的简单介绍参考文章&#xff1a;鸿蒙多线程开发——线程间数据通信对象03(sendable) 与JSON对象的序列化和反序列化类似&#xff0c;Sendable对象的序列化和反序列化是通过ArkTs提供的ASON工具来完成。 与JSON类似&#xff0…...

nodepad配置c/c++ cmd快速打开创建项目文件

前提:下载MinGw,并且配置环境变量 点击阅读次篇文章配置MinGw 无论是哪个编译器&#xff0c;执行c文件都是经历以下步骤: 编译文件生成exe文件执行该exe文件 我们先手动完成这两部 手动编译文件使用指令 gcc {你的c文件} -o {生成文件名}生成exe文件 第二步运行exe直接点击该文…...

【C++】读取数量不定的输入数据

读取数量不定的输入数据 似乎是一个很实用的东西&#xff1f; 问题&#xff1a; 我们如何对用户输入的一组数&#xff08;事先不知道具体有多少个数&#xff09;求和&#xff1f; 这需要不断读取数据直至没有新的输入为止。&#xff08;所以我们的代码就是这样设计的&#x…...

ESC字符背后的故事(27 <> 033 | x1B ?)

ANSI不可见字符转义&#xff0c;正确的理解让记忆和书写变得丝滑惬意。 (笔记模板由python脚本于2024年11月26日 15:05:33创建&#xff0c;本篇笔记适合python 基础扎实的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xf…...

基于NXP LS1043 OpenWRT智能交通边缘网关设计

0 引言 城市公共交通是与人们生产生活息息相关的重 要基础设施&#xff0c;是关系国计民生的社会公益事业。“城 市公共交通发展的十三五规划”明确指出&#xff1a;建设与移 动互联网深度融合的智能公交系统&#xff1b;推进“互联网 城市公交”发展&#xff1b;推进多元…...

绪论相关题目

1.在数据结构中,从逻辑上可以把数据结构分成( C)。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 2.在数据结构中,从存储结构上可以将之分为( B)。 A. 动态结构和静态结构 B. 顺序存储和非顺序存储 C. 紧凑结构和非紧…...

中国科学院大学研究生学术英语读写教程 Unit7 Materials Science TextA 原文和翻译

中国科学院大学研究生学术英语读写教程 Unit7 Materials Science TextA 原文和翻译 Why Is the Story of Materials Really the Story of Civilisation? 为什么材料的故事实际上就是文明的故事&#xff1f; Mark Miodownik 1 Everything is made of something. Take away co…...

centos系列安装服务器时分区

服务器安装手动分区&#xff0c;标准分区(注意顺序)&#xff1a; 自定义标准分区 /boot/efi 200M&#xff1b;/boot 1G 放引导程序和内核文件及根文件&#xff1b; /var 磁盘1/10内存尽量大存放日志文件&#xff1b; /usr 磁盘1/10内存尽量大存在程序软件包&#xff1b; swap 虚…...

vue的理解

什么是vue vue是一套用于构建用户界面的渐进式框架&#xff0c;与其他框架不同的是&#xff0c;vue被设计为可以自底向上逐层应用&#xff0c;它也是创建单页面应用的web应用框架。vue的核心库只关注视图层&#xff0c;不仅易上手&#xff0c;还便于与第三方库或既有项目整合。…...

111. UE5 GAS RPG 实现角色技能和场景状态保存到存档

实现角色的技能存档保存和加载 首先&#xff0c;我们在LoadScreenSaveGame.h文件里&#xff0c;增加一个结构体&#xff0c;用于存储技能相关的所有信息 //存储技能的相关信息结构体 USTRUCT(BlueprintType) struct FSavedAbility {GENERATED_BODY()//需要存储的技能UPROPERT…...

抖音短视频矩阵源代码部署搭建流程

抖音短视频矩阵源代码部署搭建流程 1. 硬件准备 需确保具备一台性能足够的服务器或云主机。这些硬件设施应当拥有充足的计算和存储能力&#xff0c;以便支持抖音短视频矩阵系统的稳定运行。 2. 操作系统安装 在选定的服务器或云主机上安装适合的操作系统是关键步骤之一。推…...

leetcode - LRU缓存

什么是 LRU LRU (最近最少使用算法), 最早是在操作系统中接触到的, 它是一种内存数据淘汰策略, 常用于缓存系统的淘汰策略. LRU算法基于局部性原理, 即最近被访问的数据在未来被访问的概率更高, 因此应该保留最近被访问的数据. 最近最少使用的解释 LRU (最近最少使用算法), 中…...

计算机网络八股整理(一)

计算机网络八股文整理 一&#xff1a;网络模型 1&#xff1a;网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型&#xff0c;它由七层组成&#xff0c;从上到下分别是&#xff1a;应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;…...

专业商城网站制作/外包网站有哪些

Remove K Digits题目&#xff1a;给出一个非负的整数num, 用字符串表示&#xff0c;去掉k个digits之后得到一个最小的新数字 思路&#xff1a; Zuo-生成窗口最大值数组 - 239. Sliding Window Maximum 给出一个整型数组arr和一个大小为w的窗口&#xff0c;从左向右滑动窗口&…...

网站后台动态播放怎么做的/近期国际新闻20条

在使用Haphost提供的128M内存的VPS建站时&#xff0c;debian7wordpressnginxmysql跑起来相当吃力。然后使用Debian7typecholighttpdsqlite的搭配好&#xff0c;发现效果特别好&#xff0c;在此记录下搭建和优化过程。 1.debian 7 32位系统的优化 删除建站用不到的软件并清理缓存…...

wordpress用php哪个版本好/精准拓客软件哪个好

log4j 的配置将log4j 日志文件的具体配置单独介绍&#xff0c; 是因为它的配置方式将直接决定日志的产生方式&#xff0c;存放位置&#xff0c;输出格式等。在/ src 下建立log4j.properties。内容如下&#xff1a;&#xff03; 这里定义日志配置根logger&#xff0c;其中后面的…...

建立网站外链常用的渠道有哪些/b2b是什么意思

向量到一个平面的投影向量 求一个向量投影到一个平面上的投影向量&#xff0c;如下图 已知项&#xff1a; 向量 sq&#xff0c;平面法向量 n 设点 o 为点 q 到平面的垂点 则向量 oq 垂直于平面 则向量 so 即为 sq 在平面上的投影。 so sq qo so sq n*(sqn* -1) 在上面的…...

请人做网站收费多少钱/系统优化软件推荐

这个问题是使用SqlBulkCopy拷贝数据&#xff0c;字符串长度超出数据类型长度导致的。 处理过程中对长度进行判断并截取就OK了。 *注&#xff1a;SqlBulkCopy 这货 要求ColumnMappings 列的大小写完全对应,列顺序不敏感。 转载于:https://www.cnblogs.com/hydor/p/4480929.html...

怎样做网站流量统计/爱站网影院

1、私募基金概念 私募基金&#xff0c;是指以非公开方式向特定投资者募集资金并以特定目标为投资对象的证券投资基金。私募基金是以大众传播以外的手段招募&#xff0c;发起人集合非公众性多元主体的资金设立投资基金&#xff0c;进行证券投资。 私募&#xff08;Private Plac…...