中点画线中的一些不严谨的地方

2024-06-16 00:08
文章标签 地方 严谨 点画 线中

本文主要是介绍中点画线中的一些不严谨的地方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我认为对于初学者,特别是自学的人,因为没有老师可以请教,所以任何一点不严谨的地方都会让人困惑很久,我个人认为计算机图学中关于中点画线有如下的不严谨的地方:

1、假设直线的一般方程AX+BY+C = 0,那么A=-(deltaY),B=(deltaX),C=-B(deltaX),这个前提是斜率存在的情况下,但是我见过的老师和教材的讲解,却没有前提,具体推导如下:

假设直线上的两点(x1,y1),(x2,y2),那么斜率K=(y2-y1)/(x2-x1),所以y=(deltaY/deltaX)x+b,再将任意一点代入方程,得到

b = (x2y1-x1y2)/(x2-x1),然后化简,直线方程如下:

-(y2-y1)x +(x2-x1)y -(x2y1-x1y2) = 0

因此A = -deltaY,B=deltaX,C=-B*deltaX。

2、判定一个点在直线上下方

我见过的老师和教材都是F(x,y)>0,点在上方,F(x,y)<0,点在下方,F(x,y)=0,点在直线上,这里有个前提,那就是B必须大于0,否则结论就是相反的。

比如:对于直线x-2y+2=0,这里B是负数,那么对于直线上的点P1(1,1.5)上方的点P2(1,2)代入直线方程得到:

1-4+2=-1,函数小于0,但是却在上方。

希望老师和教材能够严谨一些,因为毕竟有很多自学的人,如果我说的不对,请大家用证明的方式指出,只求学术上的正确性。

 

 

 

这篇关于中点画线中的一些不严谨的地方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

二分猜数易错的地方

今天做简单的二分猜数问题,while循环总是跳不出去,搞了好久才弄好了。。。好几次都这样,总结一下吧 while(left <= right){int mid = (left+right)/2;if(ok(mid)) left = mid+1,ans = mid;//记录结果,要不然跳不出循环,视题目而定,ans也可以写在下面else right = mid-1;}

利用UIWebView获取userAgent需要注意的地方

网络通信有时候需要传递参数userAgent,iOS中获取userAgent很简单. UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];NSString *userAgentString = [webView stringByEvaluatingJavaScriptFromString:@"naviga

解密虚拟内存0x400000以下的地方

一. 前言   最近看CSAPP时,对以前没有仔细注意的一处知识盲区产生了兴趣,所以进行了深入研究,并写下此文一记录。 二. 问题   二话不说直接上图。下图是CSAPP第七章的虚拟内存分析图。书中提到 在X86-64位Linux系统中,代码段总是从地址0x400000处开始,后面是数据段。堆在数据段之后,通过调用malloc向上增长…   但是0X400000以下呢?为什么没有

解决android系统唤醒时间偏长------看log找可疑的地方

最近发现我们的手机的双击唤醒时间偏长,那么就需要去看是什么导致的。于是首先看唤醒的log [  252.830937] [ASDF] enter do_write_event_worker      //这个是打印log的service [  252.838638] [SENSOR] : inv_ak09911_pm_suspend [  252.838647] CM32683:  CM3

初学java——关于数组容易忽视的地方总结

1:静态初始化:有程序员显示指定每个数组的初始化,由系统决定数组的长度。      动态初始化:程序员只指定数组长度,由系统为数组元素分配初始值。 2:java数组变量是一种引用类型的变量,引用的是堆内存中数组对象,而不是栈内存中的数组变量。例如数组int[] A={1,2,3};int[] B={4,5,6};当执行下面语句时:A=B;则int[] A={4,5,6};引用数组A时,变量为数

OHIF Viewer 配置接口的地方

配置接口 Viewers-master\platform\app\public\config路径下的default.js是配置接口的 window.config = {routerBasename: '/', // 路由基路径// whiteLabeling: {}, // 白标配置(可选)extensions: [], // 扩展列表modes: [], // 模式列表customizati

java.lang.NullPointerException:空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常

1. 什么是 NullPointerException? NullPointerException 是一种运行时异常(Runtime Exception),它继承自 RuntimeException 类。这种异常通常表示程序试图在期望使用对象的地方使用了 null,而 null 代表一个空引用,即没有指向任何对象的引用。由于 null 不表示有效的对象,因此任何试图对其进行操作的行为都会导致 N

EXO:模型最终验证的地方;infer_tensor;step;MLXDynamicShardInferenceEngine

目录 EXO:模型最终验证的地方 EXO:infer_tensor  EXO:step  MXNet的 mx.array 类型是什么 NDArray优化了什么 1. 异步计算和内存优化 2. 高效的数学和线性代数运算 3. 稀疏数据支持 4. 自动化求导 举例说明 EXO:模型最终验证的地方 EXO:infer_tensor  这段代码定义了一个名为 in

【c++】为什么指针那么难学,它到底抽象在什么地方 ?

指针的抽象主要体现在它们如何允许程序直接与内存地址进行交互,同时提供了一种高效和灵活的方式来操作数据。这种抽象主要体现在以下几个方面: 内存地址的直接访问:指针允许程序直接访问和操作内存中的地址。在底层,计算机中的所有数据都存储在内存中,并且每个数据项都有一个唯一的地址。指针提供了一种方式来存储和传递这些地址,使得程序能够直接引用和操作内存中的数据。 数据的间接访问:通过指针,程序可以间接地

Redis: 用于纯缓存模式需要注意的地方

这里写自定义目录标题 一、核心原理二、配置展示三、问题注意 一、核心原理 在某些场景下,我们只使用的是热点缓存数据,不需要数据的备份与恢复。纯缓存模式-禁用rdb持久化-禁用aof持久化。 二、配置展示 sava “” # 禁用rdb appendonly on # 禁用aof 三、问题注意 在此模式下,一般需要应用自己考虑数据的重新加载。禁用rdb持久化模式下,我们任然