码绘与手绘比较——静态篇

2023-11-11 13:10
文章标签 比较 静态 手绘 码绘

本文主要是介绍码绘与手绘比较——静态篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

码绘图

p5.js绘制

手绘图

代码实现过程

以下仅代表性留下了码绘作画流程的部分代码,省略掉了很多取点线的代码。其实使用的东西都很简单,主要就是通过取点连线画规则图形和填色。

function setup() {createCanvas(400, 710);
}
function draw() {background(139,26,26,200); fill(0);beginShape();vertex(21,634);vertex(47, 609);vertex(74, 589);vertex(103, 570);vertex(85, 505);vertex(50, 517);vertex(44, 526);vertex(45, 515);vertex(49, 509);vertex(80, 482);vertex(65, 417);vertex(42, 363);endShape();strokeWeight(4);line(50,517,60,561);line(60,561,71,597);line(100,559,41,574);line(41,574,53,608););strokeWeight(8);line(341,576,388,601);line(381,562,342,632);strokeWeight(6);line(385,618,370,665);line(368,625,392,635);noStroke();fill(255,165,0,255);ellipse(206,552,64,93);fill(0,0,0,255);rect(149,587,124,50);strokeWeight(5);stroke(0) ;line(65,360,80,400);line(55,387,93,376);strokeWeight(4);line(302,510,338,511);line(256,516,256,436);line(276,476,236,476);line(133,528,133,428);line(153,488,113,488);noStroke();fill(	139, 137 ,137,45);
beginShape();vertex(33,248);vertex(0,251);endShape();beginShape();vertex(373,364);vertex(400,377);endShape();beginShape();vertex(400,99);vertex(400,0);endShape();}

手绘与码绘异同比较


绘画思路


同:都要思考下笔的先后次序,要考虑画面的覆盖问题
异:码绘是通过规则图形和取的点线构成边界后填色完成的,但手绘是流畅的充满质感的,即使填色也可能是不均匀有笔触的。

技术方面


同:都需要进行画面的构思,在创意阶段基本是一样的。
异:码绘用代码实现画面,需要对编程语言的熟练使用,它更多的是数学与图形的结合。手绘则使用笔纸,对灵感和经验要求更高,它不一定能像码绘一样精准,但是相对更自由。

创作体验


同:能够完成直观的画面还是很开心的。
异:手绘带来的质感更让人有创作感,码绘相对来说比起创作更像是制作。

创作偏好


手绘。码绘在有的方面的确能够产生很多灵动有玄妙的效果,但是我永远喜欢手绘的质感,握笔的感觉是用鼠标和键盘无法替代的。(而且这种不规则图形用打点的方法码绘真的又没有效率又没有效果!!!!!)

参考文献
开始第一幅“码绘”——以编程作画的基本方法

https://blog.csdn.net/magicbrushlv/article/details/77840565

p5.js简介&基本形状绘制
https://blog.csdn.net/qq_27534999/article/details/75151515
 

这篇关于码绘与手绘比较——静态篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390282

相关文章

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-server http-server 是一个轻量级的命令行工具,允许你快速启动一个静态文件服务器。 安装 npm install -g http-server

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib