初来乍到,直入正题
(资料图)
soma曲线是用多个圆弧将多个节点连起来的一种弧线,在我的世界区的粒子红石音乐中常常出现,因为是一个叫Soma的up主出的所以得名,这是soma3.0特效即soma曲线
我没有电脑(本来有的,后来发生了一些不愉快的事情,作者畜种牲一枚,所以忍一下我的手绘吧
首先确定三个点
然后连起来(作为辅助线
做两条边的中垂线(中垂线上的点到边上的距离相等,这样可以保证两个点都在弧上
在第一条边的中垂线上选一个圆心,到蓝点的距离为半径作弧
然后连接圆形和第二个蓝色的点,延长,和红线相交(使两弧线相接
交点作为另一个圆心画弧
完成!
如果有添加的点就重复连线,做中垂线,做交点,画弧线的步骤
一些问题和代码中的一些思路
1.可以构建结构体来储存横纵坐标系的点坐标和表示线和线段,比如
2.Q:怎么算交点?
A:用点算出直线的解析式,然后通过方程,代入k,b算出x的值,再算y的值。(初中知识
3.Q:有时候算交点程序会报错,查变量会发现有naN的值。
A:可能是不能存平行或者垂直的函数直线,也有可能出现中垂线和延长线平行的情况,无法计算出交点。
解决办法:有一些特殊的数字表示直线(k=114514),在算交点之前先判断k值是否相等。
如果在红石音乐中遇到无法画soma曲线连接的点,可以做抛物线连接,然后再使用soma曲线。
4.Q:如何算中垂线?
A:求中点坐标和
然后根据平面直角坐标系中算出k值,得出中垂线。
5.Q:为什么我的画弧函数画的是圆?
A:电脑中三角函数的参数不是角度,而是弧度,所以sin30°就得写成 sin(30*PI/180)
6.Q:如何确定距离?
A:勾股定理(初中知识)
好了,就到这里结束了,抱歉我只能口嗨,不能给出示范程序,如果有问题可以在评论中讨论,希望大家满意和听懂。