政安晨【零基础玩转各类开源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,产品经理的春天来了,世界仿佛一下子变得安静了。

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

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

相关文章

AI-agent矩阵营销:让品牌传播无处不在

矩阵营销是一种通过多平台联动构建品牌影响力的策略&#xff0c;而 AI-agent 技术让这一策略变得更加智能化。AI社媒引流王凭借其矩阵管理功能&#xff0c;帮助品牌在多个平台上实现深度覆盖与精准传播。 1. 矩阵营销的优势 品牌触达更广&#xff1a;多平台联动可以覆盖不同用…

1- 9 C 语言面向对象

面向对象的基本特性&#xff1a;封装&#xff0c;继承&#xff0c;多态 1.0 面向过程概念 当我们在编写程序时&#xff0c;通常采用以下步骤&#xff1a; 1. 将问题的解法分解成若干步骤 2. 使用函数分别实现这些步骤 3. 依次调用这些函数 这种编程风格的被称作 面向过程…

中国科学院大学研究生学术英语读写教程 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…

从零开始-VitePress 构建个人博客上传GitHub自动构建访问

从零开始-VitePress 构建个人博客上传GitHub自动构建访问 序言 VitePress 官网&#xff1a;VitePress 中文版 1. 什么是 VitePress VitePress 是一个静态站点生成器 (SSG)&#xff0c;专为构建快速、以内容为中心的站点而设计。简而言之&#xff0c;VitePress 获取用 Markdown…

TCP IP协议和网络安全

传输层的两个协议&#xff1a; 可靠传输 TCP 分段传输 建立对话&#xff08;消耗系统资源&#xff09; 丢失重传netstat -n 不可靠传输 UDP 一个数据包就能表达完整的意思或屏幕广播 应用层协议&#xff08;默认端口&#xff09;&#xff1a; httpTCP80 网页 ftpTCP21验证用户身…

mcu上一种利用伪随机数防止mac地址冲突的方法

一 前言 前段时间开发的一个带tcp功能的项目&#xff0c;出现了mac地址冲突的问题&#xff0c;领导让随机生成一个mac地址&#xff0c;因此研究了下随机数。 二 预研 1.硬随机数 硬随机数又叫真随机数&#xff0c;英文名称”true random number generator“,即通过硬件随机数…

英伟达发布 Edify 3D 生成模型,可以在两分钟内生成详细的、可用于生产的 3D 资源、生成有组织的 UV 贴图、4K 纹理和 PBR 材质。

英伟达发布 Edify 3D 生成模型&#xff0c;可以利用 Agents 自动判断提示词场景中需要的模型&#xff0c;生成后将他们组合为一个场景。 Edify 3D 可以在两分钟内生成详细的、可用于生产的 3D 资源、生成有组织的 UV 贴图、4K 纹理和 PBR 材质。 相关链接 论文&#xff1a;htt…

远程控制软件:探究云计算和人工智能的融合

在数字化时代&#xff0c;远程控制工具已成为我们工作与生活的重要部分。用户能够通过网络远程操作和管理另一台计算机&#xff0c;极大地提升了工作效率和便捷性。随着人工智能&#xff08;AI&#xff09;和云计算技术的飞速发展&#xff0c;远程控制工具也迎来了新的发展机遇…

腾讯云 AI 代码助手:产品研发过程的思考和方法论

一、文章摘要 本文将详细阐述 腾讯云 AI 代码助手的历史发展形态与产品整体架构&#xff0c;并从技术、研发方法论的角度分别阐述了产品的研发过程。 全文阅读约 5&#xff5e;8 分钟。 二、产品布局 AI 代码助手产品经历了三个时代的发展 第一代诸如 Eclipse、Jetbrains、V…

WebGIS技术汇总

WebGIS系统通常都围绕地图进行内容表达&#xff0c;但并不是有地图就一定是WebGIS&#xff0c;所以有必要讨论下基于Web的地图API分类及应用场景。 Web上的Map API主要分类如下几类&#xff1a; Charts&#xff1a;以D3.js&#xff0c;Echarts等为代表。LBS&#xff1a;以高德…

Oracle 深入学习 Part 9: Storage Structure and Relationships(存储结构与关系)

在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;Segment&#xff08;段&#xff09;、Extent&#xff08;区块&#xff09; 和 Block&#xff08;块&#xff09; 是描述数据库物理存储结构的三个重要概念。这些概念帮助理解数据库是如何在磁盘等存储设备上组织和管…

C语言实例之10求0-200内的素数

1. 素数 素数&#xff08;Prime number&#xff09;&#xff0c;也叫质数&#xff0c;是指在大于 1 的自然数中&#xff0c;除了 1 和它自身外&#xff0c;不能被其他自然数整除的数。例如 2、3、5、7、11 等都是素数&#xff0c;而 4 能被 2 整除、6 能被 2 和 3 整除&#x…

使用Python和Pybind11调用C++程序(CMake编译)

目录 一、前言二、安装 pybind11三、编写C示例代码四、结合Pybind11和CMake编译C工程五、Python调用动态库六、参考 一、前言 跨语言调用能对不同计算机语言进行互补&#xff0c;本博客主要介绍如何实现Python调用C语言编写的函数。 实验环境&#xff1a; Linux gnuPython3.10…

哈希C++

文章目录 一.哈希的概念1.直接定址法2.负载因子 二.哈希函数1.除法散列法 / 除留余数法2.乘法散列法3.全域散列法&#xff08;了解&#xff09; 三.处理哈希冲突哈希冲突&#xff1a;1.开放定址法&#xff08;1&#xff09;线性探测&#xff1a;&#xff08;2&#xff09;二次探…

SAR ADC系列15:基于Vcm-Base的开关切换策略

VCM-Based开关切换策略&#xff1a;采样~第一次比较 简单说明: 电容上下极板分别接Vcm&#xff08;一般Vcm1/2Vref&#xff09;。采样断开瞬间电荷锁定&#xff0c;进行第一次比较。 当VIP > VIN 时&#xff0c;同时 减小VIP 并 增大VIN 。P阵列最高权重电容从Vcm(1/2Vref)…

深度学习模型:循环神经网络(RNN)

一、引言 在深度学习的浩瀚海洋里&#xff0c;循环神经网络&#xff08;RNN&#xff09;宛如一颗独特的明珠&#xff0c;专门用于剖析序列数据&#xff0c;如文本、语音、时间序列等。无论是预测股票走势&#xff0c;还是理解自然语言&#xff0c;RNN 都发挥着举足轻重的作用。…

【IEEE独立出版 | 厦门大学主办】第四届人工智能、机器人和通信国际会议(ICAIRC 2024,12月27-29日)

第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 重要信息 会议官网&#xff1a;www.icairc.net 三轮截稿时间&#xff1a;2024年11月30日23:59 录…

CLIP-Adapter: Better Vision-Language Models with Feature Adapters

当前的问题 由于CLIP的过度参数化和缺乏足够的训练样例&#xff0c;简单的微调会导致对特定数据集的过拟合&#xff0c;并且训练过程会非常缓慢由于在所有CLIP层之间的向前和向后传播。 方法 视觉适配器 A v ( ⋅ ) A_v(\cdot) Av​(⋅)(包含 W 1 v , W 2 v \textbf{W}^v_1,\…

微软Ignite 2024:建立一个Agentic世界!

在今年的Microsoft Ignite 2024上&#xff0c;AI Agent无疑成为本次大会的重点&#xff0c;已经有十万家企业通过Copilot Studio创建智能体了。微软更是宣布&#xff1a;企业可以在智能体中&#xff0c;使用Azure目录中1800个LLM中的任何一个模型了&#xff01; 建立一个Agent…

Kubeadm 安装 Kubernetes 高可用集群 v1.30.0

1、修改主机名&#xff08;各个节点&#xff09; hostnamectl set-hostname xxx2、hosts 文件加入主机名&#xff08;全部节点&#xff09; cat /etc/hosts 192.168.88.5 master1 192.168.88.6 master2 192.168.88.7 master3 192.168.88.8 node13、关闭防火墙&#xff08;全部…