画直线找整点

2023-10-07 01:40
文章标签 直线 整点

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

文章目录

  • 画直线找整点
    • 题目描述
    • 输入
    • 输出
      • 样例输入
      • 样例输出
    • 代码展示
    • 运行效果

画直线找整点

题目描述

现给定XOY平面第一象限内长宽分别为31的网格,并给定两个点P1(x1,y1),P2(x2,y2),由此可以确定一条直线,现要求这条直线经过的所有整点。整点需要满足以下要求:1)x坐标必须是整数,2)y坐标四舍五入到较近的整数。比如当给定的两个顶点是P1(0,0),P2(7,5)时,如下图所示的红色格点和蓝色格点就是部分经过的整点。现给定P1和P2,要求输出直线在网格范围内经过的所有整点。
在这里插入图片描述

输入

输入包含1行4这整数,x1,y1,x2,y2 (范围均位于[0,30])。

输出

输出包括多行,表示直线在网格范围内( x∈[0,30], y∈[0,30]) 经过的所有整点。

样例输入

0 0 7 5

样例输出

0,0
1,1
2,1
3,2
4,3
5,4
6,4
7,5
8,6
9,6
10,7
11,8
12,9
13,9
14,10
15,11
16,11
17,12
18,13
19,14
20,14
21,15
22,16
23,16
24,17
25,18
26,19
27,19
28,20
29,21
30,21

代码展示

#include <iostream>
#include <cmath>
using namespace std;int main() {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;double k = (y2 - y1) * 1.0 / (x2 - x1);double b = y1 - k * x1;for (int x = 0; x <= 30; x++) {int y = round(k * x + b);if (0 <= y && y <= 30)cout << x << "," << y << endl;}return 0;
}

运行效果

在这里插入图片描述

这篇关于画直线找整点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

求空间直线与平面的交点

若直线不与平面平行,将存在交点。如下图所示,已知直线L过点m(m1,m2,m3),且方向向量为VL(v1,v2,v3),平面P过点n(n1,n2,n3),且法线方向向量为VP(vp1,vp2,vp3),求得直线与平面的交点O的坐标(x,y,z): 将直线方程写成参数方程形式,即有: x = m1+ v1 * t y = m2+ v2 * t

n条直线最多能划分出多少个平面?

N条直线,两两相交,其交点各不不同,则产生的交点数目为N个数中取2个数的组合; 同时,也只有这种情况下(两两相交,也交点不同),分割的平面数最多, 数目为: 2 + (N-1)(N+2)/2.  这里求最少平面数没有意义,因为最少平面数就是N+1, 即N条直线两两平行的时候,分割的平面最少。 举例: 1条直线分割平面数最多为2; a1 = 2 2条直线分割平面数最多为4;

OpenCV绘图函数(12)绘制直线函数 line()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 line 函数在图像中绘制从 pt1 到 pt2 两点之间的线段。这条线会被图像边界裁剪。对于没有抗锯齿效果且坐标为整数的线,会使用 8-连接或者 4-连接的 Bresenham 算法。粗线条的绘制会采用圆角处理。抗锯齿线条则通过高斯滤波来绘制

Codeforces Round #329 (Div. 2) B. Anton and Lines ([好题] 计算直线在区间是否有交点)

题目链接 题意:给出n个条直线,然后在指定的区间(x1,x2)是否有直线的交点存在。 解法:一:闭区间,首先把区间略微调小。 二:计算直线在x1,x2上的交点y坐标,以及直线的id,然后按照y值,id值排序,最后判断第x1,x2左右两边的第i个点是不是同一直线的,如果不是,就存在交点。 #include<bits/stdc++.h>using namespace std;const i

Unity坐标系计算3D中两直线的最短距离及最近点的几何原理

方法1: 已知空间中两直线AB, CD,判断它们是否相交      问题的关键是求出这两条直线之间的最短距离,以及在这个距离上最接近两线的点坐标,判断该点是否在直线AB和直线CD上。      首先将直线方程化为对称式,分别得到两直线方向向量AB=(x1,y1,z1), CD=(x2,y2,z2),再将两向量AB, CD叉乘得到其公垂向量N=(x,y,z),在AB, CD两直线上分别选取点E

这神器好棒!阅读体验直线飙升~

这是蜗牛互联网的第 89 期原创。 作者 | 白色蜗牛 来源 | 蜗牛互联网(ID: woniu_internet) 转载请联系授权(微信ID: 919201148) 前言 我们在网上阅读的时候,经常会看到一些有价值的观点或者是有用的知识,希望可以摘录下来,甚至把我们自己当时的思考也记录下来,以便未来需要的时候回头再看。 有的朋友可能会记到一个小本本上,有的朋友可能会写到线上的笔记软件里。但

【转载】直线分平面

路路分蛋糕问题 蛋糕终于是买回来了,路路的朋友们已经迫不及待来吃蛋糕了。为了公平起见,每个人都将分到一块蛋糕。可是路路是一个很懒的家伙,他想用最少的刀数分出他想要的蛋糕块数,不论大小和形状。下面请开动你的脑筋告诉这个懒家伙该怎么做,蛋糕切法按照常理理解。 从题目中提供的条件来看,蛋糕按照常理可以抽象为一个圆形(平面图形),而切开的印痕可以抽象为一条直线,所以这个问题需要研究平面内的n条直线所能分

【Opencv】Hough变换找直线和圆

目录 题目 解决方法 完整代码 Hough参数详解 总结 参考 题目 用霍夫变换找出图像中的直线和圆(用彩色直线和圆标记在原图上)。要求有代码,有注释,有过程、有结果   解决方法 # -*- coding: UTF-8 -*-import cv2import numpy as np# 1.加载图片,转为二值图img = cv2.imread('image.j

BNU 7536 HDU 3425 Coverage (圆与直线相交 )TeamContest - 4—B【解题报告】

【题目链接】click here~~ 【题目大意】求多个圆与线段相交的部分占整个线段的百分比。 【解题思路】  此题首先要判断圆心不一定全在给定的线段上,可以在任意的位置,(理解错了题,原先以为圆心在线段上,读题要仔细!) 因此我们可以联立圆的方程和线段的方程首先判断线段与圆有没有交点 求出方程组解得: 二次项系数为  a = cos(cx1,cx0) +cos(cy1,cy0);//二次项的