blender-快捷键

Blender 常用快捷键:
一、通用快捷键
1. 视图操作
鼠标中键拖动 :旋转视图。
Shift + 鼠标中键拖动 :平移视图。
Ctrl + 鼠标中键拖动 :缩放视图。
数字键 1/3/7 :前视图、右视图、顶视图。
数字键 5 :切换透视/正交视图。
Home :显示所有物体。
.(小数点) :聚焦选中物体。
2. 选择操作
左键 :选择物体。
A :全选/取消全选。
B :框选。
C :刷选(按住左键拖动选择)。
Shift + 左键 :多选。
Alt + 左键 :选择边循环或面循环。
3. 编辑模式
Tab :切换物体模式/编辑模式。
Ctrl + Tab :选择顶点/边/面模式。
E :挤出。
S :缩放。
R :旋转。
G :移动。
Ctrl + B :倒角。
Ctrl + R :环切。

二、建模快捷键
1. 基本操作
Shift + A :添加物体(网格、曲线、灯光等)。
M :移动物体到其他集合。
Ctrl + J :合并物体。
P :分离选中部分。
2. 编辑模式
Ctrl + E :边菜单(标记边、桥接边等)。
Ctrl + F :面菜单(填充、三角化等)。
Ctrl + V :顶点菜单(合并顶点、平滑顶点等)。
Ctrl + Shift + B :顶点倒角。

三、动画快捷键
1. 关键帧操作
I :插入关键帧(位置、旋转、缩放等)。
Alt + I :删除关键帧。
Shift + Ctrl + Alt + C :设置原点。
2. 时间轴操作
空格键 :播放/暂停动画。
Shift + 空格键 :反向播放动画。
左右箭头 :逐帧移动。
K :在时间轴上标记位置。

四、材质与渲染快捷键
1. 材质编辑
Shift + F3 :打开着色器编辑器。
Ctrl + T :添加纹理坐标和映射节点。
2. 渲染设置
F12 :渲染当前帧。
Ctrl + F12 :渲染动画。
Z :切换视图着色模式(线框、实体、渲染等)。

五、其他常用快捷键
1. 文件操作
Ctrl + N :新建文件。
Ctrl + O :打开文件。
Ctrl + S :保存文件。
Ctrl + Shift + S :另存为。
2. 工具操作
T :打开左侧工具面板。
N :打开右侧属性面板。
F3 :搜索操作。
Ctrl + Z :撤销。
Ctrl + Shift + Z :重做。

六、自定义快捷键
1. 打开快捷键设置 :
进入 Edit > Preferences > Keymap 。
2. 修改快捷键 :
搜索需要修改的操作,点击右侧的快捷键进行修改。
3. 保存设置 :
点击 Save Preferences ,保存自定义快捷键。

vue3动态效果

安装

npm install animate.css --save

引入

import 'animate.css';

使用

<div class="animate__animated animate__bounce">Hello, Animate.css!</div>

自定义

.your-classname {
  animation-duration: 1.8s; /* 动画持续时间 */
  animation-delay: 2s; /* 动画延迟时间 */
  animation-iteration-count: infinite; /* 动画循环次数 */
}

 

2. AOS (Animate On Scroll)
官网:https://michalsnik.github.io/aos/
3. WOW.js
4.GSAP

  • 官网 :https://gsap.com/
  • GitHub :https://github.com/greensock/GSAP
5. Anime.js
  • 官网 :https://animejs.com/
  • GitHub :https://github.com/juliangarnier/anime
6. Inspira UI

  • 官网 :https://inspira-ui.com/
  • GitHub :https://github.com/unovue/inspira-ui
    这是一款专门为 Vue3 设计的动效组件库,官方示例有 100 + 个。

    它自带超多惊艳的动画效果,像炫酷背景、粒子特效、按钮交互等,无需额外引入其他库就能做出流畅的过渡效果。

7. Uiverse.io

  • 官网 :https://uiverse.io/
  • GitHub :https://github.com/uiverse-io

8.  NavNav+
9. Galacean Engine
Galacean Engine 是蚂蚁重磅开源 Web 3D 动效引擎,是一个专注于 3D 场景实时渲染的引擎,它在动画方面也有着出色的表现。

  • 官网 :https://galacean.antgroup.com/engine/
  • GitHub :https://github.com/galacean/engine
10. Color4BG
11. Tween.js
  • 官网 :https://tweenjs.github.io/tween.js/docs/user_guide.html
  • GitHub :https://github.com/tweenjs/tween.js
12. Motion Vue
  • 官网 :https://motion.unovue.com/
    GitHub :https://github.com/motiondivision/motion-vue
13.TresJS
  • 官网 :https://docs.tresjs.org
  • GitHub :https://github.com/tresjs/tres

在 alpine linux 中使用 webcam uvcdynctrl

apk add libxml2-dev libxml2 libxml2-utils libxml++-2.6-dev libjpeg-turbo-dev libturbojpeg-
apk add build-base git cmake autoconf automake libtool
wget -O libwebcam-src-0.2.5.tar.gz https://sourceforge.net/projects/libwebcam/files/source/libwebcam-src-0.2.5.tar.gz/download
tar xvzf libwebcam-src-0.2.5.tar.gz
cd libwebcam-0.2.5/
cmake .
make 
make install
uvcdynctrl -l

 apk add v4l-utils v4l-utils-dev  v4l-utils-libs qv4l2 libcamera-v4l2 

uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x50ff'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x00f6'
uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x2500'
uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x5ffe'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0003'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0002'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0012'
uvcdynctrl -d /dev/video0 -S 6:15 '(LE)0x0004'
uvcdynctrl -d /dev/video0 -S 6:8  '(LE)0x76c3'
uvcdynctrl -d /dev/video0 -S 6:10 '(LE)0x0400'


安装成功后可以在bash下运行命令:uvcdynctrl -d /dev/video0 -S 6:10 '(LE)0x0400' 来控制该摄像头显示双摄像头数据


# uvcdynctrl -d /dev/video0 -c
[libwebcam] Invalid V4L2 control type encountered: ctrl_id = 0x00980001, name = 'User Controls', type = 6
[libwebcam] Invalid or unsupported V4L2 control encountered: ctrl_id = 0x00980001, name = 'User Controls'
Listing available controls for device /dev/video0:
  Brightness
  Contrast
  Saturation
  Hue
  White Balance, Automatic
  Gamma
  Power Line Frequency
  White Balance Temperature
  Sharpness
  Backlight Compensation

 uvcdynctrl -d /dev/video0 -s "Brightness" 128
uvcdynctrl -d /dev/video0 -s "Exposure, Auto" 1     # 关闭自动曝光
uvcdynctrl -d /dev/video0 -s "Exposure (Absolute)" 100

参考:
https://blog.51cto.com/u_15202985/6005161
https://www.cnblogs.com/astreye/p/8399792.html

PJLink-CSharp-连接投影机

控制类

using System;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

public class PJLinkController
{
    private readonly string _ipAddress;
    private readonly int _port = 4352; // PJLink 默认端口
    private readonly string _password = ""; // 如果投影机设置了密码,需在此填入

    public PJLinkController(string ipAddress, string password = "")
    {
        _ipAddress = ipAddress;
        _password = password;
    }

    // 连接投影机并执行命令
    private async Task<string> SendCommandAsync(string command)
    {
        using var client = new TcpClient();
        await client.ConnectAsync(_ipAddress, _port);
        
        using var stream = client.GetStream();
        var buffer = new byte[1024];
        
        // 读取欢迎消息
        var bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
        var welcomeMessage = Encoding.ASCII.GetString(buffer, 0, bytesRead);
        
        // 验证是否需要密码
        string authString = "";
        if (welcomeMessage.Contains("%1"))
        {
            // 计算认证哈希
            var hash = CalculateHash(welcomeMessage.Substring(2, 8));
            authString = $"%1{hash}";
        }
        
        // 发送带认证的命令
        var commandBytes = Encoding.ASCII.GetBytes($"{authString}{command}\r");
        await stream.WriteAsync(commandBytes, 0, commandBytes.Length);
        
        // 读取响应
        bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
        return Encoding.ASCII.GetString(buffer, 0, bytesRead);
    }
    
    // 计算认证哈希
    private string CalculateHash(string salt)
    {
        if (string.IsNullOrEmpty(_password)) return "";
        return $"{salt}{_password.GetHashCode():X8}";
    }

    // 电源控制
    public async Task PowerOnAsync() => await SendCommandAsync("%1POWR 1");
    public async Task PowerOffAsync() => await SendCommandAsync("%1POWR 0");
    public async Task<string> GetPowerStatusAsync() => await SendCommandAsync("%1POWR ?");

    // 3D模式控制(理光特有命令)
    public async Task Set3DModeAsync(int mode)
    {
        // 理光3D模式代码:
        // 0 = 3D关闭, 1 = 帧连续, 2 = 并排, 3 = 上下, 4 = 帧封装
        await SendCommandAsync($"%1AVMT 3D {mode}");
    }
    
    public async Task<string> Get3DModeAsync() => await SendCommandAsync("%1AVMT 3D ?");

    // 输入源切换
    //public async Task SetInputSourceAsync(string source)
    //{
    //    // 输入源代码示例:
    //    // RGB1 = 11, RGB2 = 12, HDMI1 = 31, HDMI2 = 32, Network = 41
    //    await SendCommandAsync($"%1INPT {source}");
    //}

    // 信号源切换方法
    public async Task SetInputSourceAsync(string sourceCode)
    {
        // 验证输入源代码格式
        if (!System.Text.RegularExpressions.Regex.IsMatch(sourceCode, @"^\d{2}$"))
        {
            throw new ArgumentException("输入源代码必须是两位数字", nameof(sourceCode));
        }
        // 输入源代码示例:
        // RGB1 = 11, RGB2 = 12, HDMI1 = 31, HDMI2 = 32, Network = 41
        await SendCommandAsync($"%1INPT {sourceCode}");
    }

    // 获取当前输入源
    public async Task GetCurrentInputSourceAsync()
    {
        var response = await SendCommandAsync("%1INPT ?");
        // 解析响应 (格式: %1INPT=xx)
        if (response.Contains("="))
        {
            return response.Split('=')[1].Trim();
        }
        return "未知";
    }


 

}

 

 

使用

// 使用示例
public static async Task Main()
{
    var controller = new PJLinkController("192.168.1.100"); // 替换为投影机实际IP
    
    // 开机
    await controller.PowerOnAsync();
    Console.WriteLine("已发送开机命令");
    
    // 等待投影机启动
    await Task.Delay(30000); // 等待30秒
    
    // 切换到HDMI1
    await controller.SetInputSourceAsync("31");
    Console.WriteLine("已切换到HDMI1");
    
    // 开启3D模式(帧连续)
    await controller.Set3DModeAsync(1);
    Console.WriteLine("已开启3D模式");
    
    // 获取电源状态
    var status = await controller.GetPowerStatusAsync();
    Console.WriteLine($"电源状态: {status}");
    
    // 5分钟后关机
    await Task.Delay(300000);
    await controller.PowerOffAsync();
    Console.WriteLine("已发送关机命令");
}

 

ffmpeg 命令参数

1. 下载地址

https://ffmpeg.org/download.html
https://www.gyan.dev/ffmpeg/builds/
https://github.com/BtbN/FFmpeg-Builds/releases
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-linux64-lgpl-shared-7.1.tar.xz
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-linux64-lgpl-7.1.tar.xz
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.1-latest-win64-lgpl-shared-6.1.zip
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.1-latest-win64-lgpl-6.1.zip

 

2. 常用命令
视频缩放,

ffmpeg -i in.mp4 -vf "scale=iw*0.25:ih*0.25" -preset ultrafast -c:v libx264  out.mpt