首页 > 其他分享 >2D triangle area

2D triangle area

时间:2023-12-25 20:35:34浏览次数:37  
标签:3POINT2 triangle area 2D POINT2 type Point2f define


2D triangle area_数学建模

 

2D triangle area_#include_02

* area3.c

#include <stdio.h>

#define DET2(a) (a[0][0]*a[1][1] - a[0][1]*a[1][0])

#define POINT2_TYPE(type) struct point2##type

#define STRUCT_POINT2(type) \
	POINT2_TYPE(type) { \
		type x; \
		type y; \
	}
#define AREA_3POINT2_NAME(type) area_3point2##type

#define AREA_3POINT2_FUNC(type) \
	type AREA_3POINT2_NAME(type)(POINT2_TYPE(type) a, \
			POINT2_TYPE(type) b, \
			POINT2_TYPE(type) c) { \
		type mat[2][2] = { \
			{b.x - a.x, c.x - a.x}, \
			{b.y - a.y, c.y - a.y}, \
		}; \
		return DET2(mat)/2.0; \
	}
typedef STRUCT_POINT2(float) Point2f_t;
AREA_3POINT2_FUNC(float);

int main(int argc, char *argv[]) {
	Point2f_t pa = {2, 0}, pb = {-1,3}, pc = {0, 0};
	float (*get_area)(Point2f_t, Point2f_t, Point2f_t);

	get_area = AREA_3POINT2_NAME(float);
	printf("area=%.2f\n", get_area(pa, pb, pc));

	return 0;
}

cc -g area3.c

./a.out

2D triangle area_数学建模_03

查看宏展开gcc -E xx.c

标签:3POINT2,triangle,area,2D,POINT2,type,Point2f,define
From: https://blog.51cto.com/u_11658127/8971732

相关文章

  • Unity引擎2D游戏开发,撞墙判定和等候计时
    撞墙判定将野猪绑定PhysicsCheck脚本,并将GroundLayer选中Ground,调整ButtonOffset到脚边,CheckRadius为0.1,即可判定悬崖physicsCheck脚本中添加一些变量,用于墙壁判定逻辑publicbooltouchLeftWall;publicbooltouchRightWall;publicVector2leftOffset;publicVecto......
  • Unity引擎2D游戏开发,野猪基本的移动逻辑和动画
    一、类的继承在Scripts下创建Enemy文件夹,里面再创建两个C#文件将Boar文件内的代码修改为以下代码,:后的是Enemy,即继承了Enemy类publicclassBoar:Enemy{}在Enemy内,编写基本属性publicclassEnemy:MonoBehaviour{[Header("基本参数")]//基本移动速度......
  • 2d物理引擎学习 - 角运动
    角运动(AngularMotion)或叫转动(RotationalMotion)相关公式1) 瞬时角速度(angularvelocity):ω =Δ弧度/Δt,单位:弧度/秒,方向:逆时针旋转,沿转轴向上;顺时针旋转,沿转轴向下; 2)角加速度:a=(ω1-ω0)/t,单位:弧度/秒2,方向:同角速度方向 3) 线速度:即计算单位时间内走过......
  • 最大工作频率为32MHz,R7F100GPL2DFA、R7F100GPL3CFA低功耗MCU,10M08SAU169C8GGB MAX® 1
    一、RL78/G23 新一代RL78微控制器,最大工作频率为32MHz,外围功能得到进一步扩展,低功耗性能也有所提升。RL78/G23微控制器是RL78系列的新一代产品,CPU工作时的功耗为41μA/MHz,STOP(保持4KBSRAM)时的功耗为210nA,其低功耗在业内首屈一指。此外,由于采用SNOOZE模式定序器,它还能大幅度减少......
  • 新一代RL78微控制器,R7F100GPJ2DFA和R7F100GPJ3CFA低功耗MCU、32MHz
    概览RL78/G23低功耗MCU可在41μA/MHzCPU运行频率下工作,功耗低,停止4KBSRAM保持时为210nA。该MCU设有snooze模式排序器,可显著降低间歇工作时的功耗。RL78/G23组具有1.6V至5.5V宽工作电压范围,频率高达32MHz。它们还具有30引脚至128引脚各种封装引脚数和高达768KB闪存。除了增强的模......
  • Spring的Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator
    本文能帮你回答以下几个问题;AnnotationAwareAspectJAutoProxyCreator后置器的作用是什么?SpringAOP自动增强bean是如何实现的。如何在spring上下文添加AnnotationAwareAspectJAutoProxyCreator?如何利用ProxyFactory硬编码实现一个bean的增强?AnnotationAwareAspectJAutoProx......
  • 【教程】步兵 cocos2dx 加密和混淆
    文章目录摘要引言正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA重签名操作步骤总结参考资料 摘要本篇博客介绍了针对iOS应用中的Lua代码进行加密和混淆的相关技术。通过对Lua代码进行加密处理,可以确保应用代码的安全性,同时提高性能表现。文......
  • 【终极教程】Cocos2dx服务端重构(优化cocos2dx服务端)
    【终极教程】Cocos2dx服务端重构(优化cocos2dx服务端)文章目录概述问题概述1.代码混淆代码加密具体步骤测试和配置阶段IPA重签名操作步骤2.缺乏文档3.缺乏推荐的最佳实践4.性能问题总结 概述Cocos2dx是一个非常流行的跨平台游戏引擎,开发者可以使用这个引擎来开......
  • 【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本
    【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本文章目录摘要引言正文1.准备工作2.使用ipaguard处理Lua文件3.运行ipagurd进行混淆代码加密具体步骤测试和配置阶段IPA重签名操作步骤4.IPA重签名与发布总结 摘要本文将介绍如何使用ipagurd工具对Cocos2d-......
  • 解密视频魔法:将ExternalOES纹理转化为TEXTURE_2D纹理
    在使用OpenGLES进行图形图像开发时,我们常使用GL_TEXTURE_2D纹理类型,它提供了对标准2D图像的处理能力。这种纹理类型适用于大多数场景,可以用于展示静态贴图、渲染2D图形和进行图像处理等操作。另外,有时我们需要从Camera或外部视频源读取数据帧并进行处理。这时,我们会使用GL_TEXT......