【1.0】初识Mainm
前言我了解到Manim是在去年春夏的时候的事情了,当时沉迷于游戏开发,涉及到3D数学方面的知识,然后就找到了3blue1brown 的相关视频,然后就了解到了他所开发使用的数学动画引擎工具,即Manim。
前排提醒:学习Manim需要一定的Python基础。
关于Manim所能实现的数学动画效果可以查看3blue1brown 的相关视频。
Mainm简述Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, 3Blue1Brown. As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficu ...
【CSharp实例】文件基本操作
前言我记得我之前的博客是写过C#实例相关的文章,但是考虑到过于琐碎,我并没有那么多时间,所以指拿出来文件操作的部分来记录,因为对于程序来说,输入和输出的使用频率和重要性会更高一些。
本篇内容参考自 互联网,哔哩哔哩相关视频,《C#开发实例》以及本人经验
获取文件基本信息获取文件的大小方法说明获取文件大小,需要使用File类的Open方法开打开指定的文件,然后使用FileStream类的Length属性获取文件的长度。
File类的Open方法
File类的Open根据传入的文件路径,获取其FileStream并返回,函数签名如下:
123public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);public static FileStream Open(string path, FileMode mode, FileAccess access);public static FileStream Open(string path, FileMode mo ...
Hexo入门(上)
前言在我第二次给网站装修的时候,曾经考虑过使用Hexo,不过那个时候看到人家好看的模板需要一定的网页基础,遂就放弃了,随着我今天发现我的网站似乎CSS的CDN服务停止了,遂打算用Hexo+Github+COS来完成网站的布置和搬迁,这样一来可以剩下一笔费用,而且因为Hexo是纯静态的,所以加载速度也会很快。
以此文章记录和帮助需要帮助的伙伴。
什么是HexoHexo是一个轻量级的博客框架,它是通过生成静态网页来实现网站的建设,因为是HTML形式,所以它的访问速度是很快的,关于Hexo网站可以通过点击访问Hexo官网。
Hexo的搭建环境安装Hexo需要在电脑上安装Node.JS和Git,如果你已经安装了这两个环境,则可以跳过这部分,直接到Hexo的部署。此处安装示例环境为Windows环境,其他系统请自行参考别的文章。
点我访问Node.JS官网,进入官网下载符合自己平台的软件,版本建议使用12.0及以上的版本,可以无脑最新版。
点我访问Git官网,关于Git的安装和使用可以参考我这篇文章Git与GitHub(上),此处不过多赘述
如果以上官网无法访问,可以尝试科学上网或者寻找其 ...
Hexo入门(下)
前言这部分将着手Hexo的一些基本的配置和使用方面,关于Hexo的部署部分可以参考我的上篇文章。
Hexo文件目录Hexo的安装/初始化目录如下图所示,可能部分文件存在不同,不需要担心,只需要关心我框出来的红色的文件部分:
文件/文件夹名
说明
public
我们最后生成的静态博客.html文件会在该目录下存在,如果你并为生成或者使用了hexo clean命令,则该文件夹不存在
scaffolds
模板文件夹,里面存在我们创建文章,分类等初始化的默认内容
source
文章以及一些主要内容的文件夹,该文件夹下的内容会被全部拷贝到生成的public文件夹里
themes
主题文件夹,我们下载使用的主题需要导入到该文件夹中,通过在该文件夹下创建命名为主题名称的文件夹即可
_config.yml
Hexo的配置文件
注:Hexo的配置文件和主题的配置文件不要混淆,如果你使用别人的主题则会存在一个对应的主题的配置文件
配置文件参数
yaml文件的参数填写时一定要在:后加一个空格,再填写参数
在了解了Hexo 的文件目录后,我对一些常 ...
【CSharp高级编程】default和typeof运算符
前言这部分本来应该和泛型一起讨论,考虑到分类问题,遂单独拿出来记录。
default运算符早在C# 1时代,typeof()运算符就已经出现了,它接收一个类型名称作为唯一操作数。C# 2加入了default()运算符,并且略微拓展了typeof()的用途。
default运算符功能比较简单,它是一元运算符,其操作数是类型名或者类型形参,返回值是该类型的默认值。当声明一个字段,但是没有为该字段立刻赋值时,该字段的值就是默认值。如果是引用类型,默认值是一个null引用。如果是非可空值类型,将返回对应类型的”0值”(0,0.0,0.0m,false,UTF-16编码单元的0等);如果是可空值类型则返回类型的null值。
default运算符可以用于类型形参以及提供了类型实参的泛型类型,例如如下都是合法的:
1234default(T)default(int)default(string)default(List<T>)
default运算符返回值的类型与操作数类型一致。**default常与泛型类型形参一起使用**,因为对于非泛型类型可以通过其他方式获取default值。但是对 ...
Git与GitHub(中)
前言这部分将讲述Git相关的基本知识和操作方法。
各种Git命令操作,需要鼠标右键选择,Git Bash here来开始。
基本操作
git init——初始化仓库
要使用Git进行版本管理,必须先初始化仓库。Git是使用git init命令进行初始化的。命令示例:
1git init
如果初始化成功,执行了git init命令的目录下就会生成.git目录。这个目录里存储着管理当前目录内容所需的仓库数据。
.git目录默认隐藏,需要开启查看隐藏文件才可以查看到
在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”。文件的编辑等操作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照。如果想将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。开发者可以通过这种方式来获取以往的文件,具体的操作指令后面会说明。
git status——查看仓库状态
git status命令用于显示Git仓库的状态。
工作树和仓库在被操作的过程中,状态会不断发生变化。在Git操作的过程中,要常看仓库状态。命令示例:
123456$ git statusOn branch ...
Git与GitHub(上)
前言这部分写于寒假,之前学过git一些基本操作,属于学个开始就由于别的事情暂时耽搁了,现在是大三寒假,我决定把它补上。
此处推荐两个网站,一个是git官方的书籍教程,一个是GitHub上比较有名的可视化git教程
玩游戏学习git网站
特别好的git书籍
Git与GitHub简要关于GitHubGitHub作为最大的同性交友网站(雾),**GitHub为开发者提供Git仓库的托管服务,可以让开发者及其相关人员共享代码的场所**。可以暂时通俗理解为代码的仓库。
关于GitGit属于分散型版本管理系统,是为版本管理而设计的软件。
Linux的创始人Linus Torvalds在2005年开发了Git的原型程序,当时是为了更好的维护Linux系统。
关于这里有一个故事:一开始Linux之父是个人在开源做Linux,随着参与项目的人越来越多,Linux项目越来越复杂,Linux之父不得不在代码整理,纠错,审核,检查,发布的过程中耗费大量的时间,这样就严重影响了开发,于使Linux之父使用了当时的版本管理系统,虽然这样解决相关问题,当时由于技术宅的爱好,就把提供Linux之父版本控制厂商研发 ...
【CSharp高级编程】委托
前言关于委托,我一开始同样也是没打算写的,但是考虑到我要写 lambda表达式的相关内容,于是不得不先说明委托的内容。对于初学者来说,第一次见到委托应该是在 Win 的事件模型中吧,反正我是这样的,这部分将对委托做详细说明。
委托委托这一特性存在的目的是封装目标代码。封装好的代码可以在应用程序中进行传递,并根据需要执行(要保证参数和返回值的类型安全)。在C# 1时代,委托基本上用于事件处理和启动线程。即使在 2005 年后的C# 2推出之后,这一状况也没有太大变化。直到 2008 年 LINQ 问世,C# 开发人员才开始适应这种把函数传来传去的编程方式。
C# 2提供了 3 种 创建委托实例的新方式,同时支持声明泛型委托,比如EventHandler<TEventArgs>和Action<T>。
方法组转换所谓方法组,就是一个或者多个同名方法。可以说,我们在每天不知不觉中使用方法组,因为每调用一次方法就是对方法组的一次使用,代码示例:
1Console.WriteLine("Hello,World");
表达式Console.WriteLi ...
【CSharp高级编程】泛型
前言我本来之前打算出一个C#入门到中级的相关文章教程的,但是考虑到太简单了我实在是懒得写了,可以参考很多网上的教程来学习,对于现在的我来说,我更加想记录一下C#的高级教程,因为对于C#的高级用法网上的教程并没有太多或者说太详细或者系统,也算是记录我自己的C#进阶路程。
前排提醒:查看学习本文章,需要掌握一定的C#基础。
引用说明:部分内容学习自网络和《深入理解C#》
泛型在C#入门的时候,就大概说明过泛型的用法和功能,它可以在不需要事先知道要使用的类型,即可以在不同位置表示相同的类型。在C# 2之前(即.NET 1),泛型主要用于集合。如今,泛型以及广泛应用到各个部分,其中使用较多的如下几项:
集合
委托(尤其是LINQ中的应用)
异步代码(Task<T>表示该方法将返回一个类型为T的值)
可空值类型
如下实例将会从集合角度来展示泛型的优势。
泛型诞生前的集合在.NET 1有如下三大类集合:
数组:语言和运行时直接支持数组。数组的大小在初始化的时候就确定了。
普通对象集合:API中的值通过System.Object描述。尽管诸如索引器和和foreach语句这些语 ...
关于我的Unity自述
前言依次纪念我大学追求游戏开发的自己,我记得大概是20年10月份吧或者11月份,我正式开始了Unity的学习,我的游戏开发结束于21年暑假结束,在大三上,在我掌握并开发了一定的Unity游戏开发后,去学习了桌面软件开发,并且掌握了Winform和WPF开发技术,其中还有许多其他方面的东西。
关于我如何自学的自述当然这一切都归功于Unity在学习游戏开发的过程中,我接触到了很多其他的东西,我看过很多教程,目前总结出来的自学流程:对于想要的学习的东西通过网络上查询了解概况,逞钱的伙伴可以直接买相关书籍,或者为了省钱的可以去学校图书馆借书,我很喜欢我们学校的图书馆,我曾经最多借书超过20本未还,当然借书多不代表能看得完,有些是需要长期来学习的,有些是短期来学习的,书籍是真的很好的东西,其次是教学视频,很多情况下我目前个人建议是不要过分依赖视频,视频教学可以让我们快速上手,但是对于教学内容来说全看视频制作者想讲什么或者视频制作者的见识,存在一定的局限性,综述来说:书籍 > 网络上的教学视频,然后就是跟着做,在学的时候要记笔记,我从一开始使用微软的OneNote笔记到后来的Markdown ...













