小编Bat*_*oid的帖子

查找圆圈是否在另一个圆圈内

我有点麻烦.我有一项任务,要求我查找第二个圆圈是重叠,内部还是第二个圆圈.但是,我无法检查重叠,如果第二个圆圈在第一个圆圈内.

(使用的变量是x1,x2,y1,y2,r1,r2,距离)

这就是我所拥有的:

if (distance > (r1 + r2)) {
        // No overlap
        System.out.println("Circle2 does not overlap Circle1");
    } else if (distance <= Math.abs(r1 + r2)) {
        // Overlap
        System.out.println("Circle2 overlaps Circle1");
    } else if ((distance <= Math.abs(r1 - r2)) {
        // Inside
        System.out.println("Circle2 is inside Circle1");
}
Run Code Online (Sandbox Code Playgroud)

我担心问题在于重叠和内部检查,但我无法弄清楚如何正确设置它以便我可以可靠地检查第二个圆是否在第一个圆圈内.

任何帮助或建议将非常感激,因为我尝试了多种方法,但解决方案每次都让我逃避.

java math

11
推荐指数
2
解决办法
2万
查看次数

"视线",用于多边形上的顶点到所有其他多边形顶点

我无法在多边形上找到从多边形上的给定顶点可见的多边形上的所有顶点.到目前为止,我用我所写的内容取得了有限的成功.

我可以将光线生成到可见顶点,但仅当我的原点不在顶点上时使用以下内容:

private ArrayList<Polyline> getGloballyVisible(Point2D origin, ArrayList<Polygon> polys) {
    ArrayList<Polyline> visible = new ArrayList<>();

    for (Polygon target : polys) {
        ArrayList<Polyline> targetVisibleLines = getVisiblePointsOnPolygon(origin, target);
        ArrayList<Polygon> subTargetPolygons = new ArrayList<>(polys);
        subTargetPolygons.remove(target);
        ArrayList<Polyline> subTargetEdges = getEdges(subTargetPolygons);

        lineCheck: for (Polyline line : targetVisibleLines) {
            for (Polyline enemyLine : subTargetEdges) {
                ArrayList<Point2D> linePoints = toPoints(line.getPoints());
                ArrayList<Point2D> enemyLinePoints = toPoints(enemyLine.getPoints());
                if (linesIntersect(linePoints.get(0), linePoints.get(1), enemyLinePoints.get(0), enemyLinePoints.get(1))) {
                    continue lineCheck;
                }
            }
            visible.add(line);
        }
    }
    return visible;
}
Run Code Online (Sandbox Code Playgroud)

完整的代码在这里,请不要笑.

样本结果

这是我尝试过的最后一种方法.我确信这种方式很可怕,如果有人能指出我正确的方向,那么可以让它变得不那么可怕我会欣赏它.

java geometry javafx

6
推荐指数
2
解决办法
715
查看次数

Flask和SQLAlchemy,应用程序未在实例上注册

我正在尝试拼凑一个小型Flask应用程序.这是我的结构.

run.py
application
  __init__.py
  database.py
  models.py
  views.py
Run Code Online (Sandbox Code Playgroud)

database.py 仅包含SQLAlchemy对象:

db = SQLAlchemy()
Run Code Online (Sandbox Code Playgroud)

然后我将其导入到models.py我的模型中.最后,里面__init__.py我导入dbdatabase.py做:

from .database import db
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///application.db'
db.init_app(app)
db.create_all()
Run Code Online (Sandbox Code Playgroud)

但是,我无法从它出现的模型中创建表.如果我删除db.create_all().应用程序将运行没有问题,但显然没有创建数据库.当db.create_all()存在时,我被赋予'RuntimeError:应用程序未在db实例上注册,并且没有应用程序绑定到当前上下文'.

老实说我很困惑,因为我之前只是在没有创建数据库的情况下启动应用程序时出现问题,但转移db到它自己的文件似乎已经在某种程度上纠正了这个问题.现在,唯一的问题仍然是创建数据库.

谁能告诉我可能是什么问题?我真的很难过.

python sqlalchemy flask flask-sqlalchemy

5
推荐指数
1
解决办法
8868
查看次数

存储MySQL表文本的最佳方法

我正在开发一个允许人们列出和搜索Minecraft服务器(人们已经提交)的电路板.

我想让人们在提交时能够提交关于他们服务器的简短300字的描述,但是,我不确定最好的方法是什么.

我想在主表中有一个单独的表,纯粹是为了将这些信息存储为TEXT.将通过GET方法从表中检索有关服务器的信息.

这听起来都好吗?是否有更好的方法来存储少量文本?

php mysql database

2
推荐指数
1
解决办法
1114
查看次数

对数组中两个最高的数字进行排序

我很遗憾地问,但我在书中练习时遇到了麻烦,而且我不确定如何修复它.输入学生的姓名和分数后,我会找到最高和第二高分.但是我找不到找到两个最高分的正确方法.

我使用的当前方式有效,但是用户输入的分数从低到高,例如70,80和90.如果完成了90,80和70,它会对数字进行适当的排序.

有什么我可以改变/做/读让我走上正确的道路吗?

import java.util.Scanner;

public class StudentSort {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        // For finding highest scores with corresponding array
        double firstHighest = 0;
        int firstEntry = 0;
        double secondHighest = 0;
        int secondEntry = 0;

        System.out.print("Enter the number of students: ");
        int studentCount = input.nextInt();

        // Length of arrays set
        int[] studentScores = new int[studentCount];
        String[] studentName = new String[studentCount];

        // Go through loop to set scores and names of each …
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
2387
查看次数

反转整数数组

只是好奇,但是当我尝试使用它来反转一个数组时,它总是吐出一些不连贯的乱码而不是反转的数组,例如[I@43256ea2.关于它为什么这样做的任何想法?

public class Fiddle {
    public static void main(String[] args) {
        int[] number = {1,2,3,4,5};
        System.out.println(reverse(number));
    }
    public static int[] reverse(int[] a) {
        int[] b = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            b[a.length-1-i] = a[i];
        }
        return b;
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢您为何发生这种情况的想法(这可能是因为我忘记了一些事情).

java

1
推荐指数
1
解决办法
2720
查看次数

使用正则表达式确定bash中的正确扩展名

想知道是否有人可以用正则表达式和bash帮助我.

我正在尝试对只有一定扩展名的文件执行一组命令,在这种情况下:mpg,mpeg,avi和mkv.

我实际上在这里找到了一个解决方案,然而,它似乎没有用.如果有人能告诉我原因,我会很感激.

#!/bin/bash

# Configuration
TARGETDIR="$1"
TARGETEXT="(mpg|mpeg|avi|mkv)"

for d in `find $1 -type d`
do
    echo "Searching directory: $d"

    for f in "$d"/*
    do
            if [ -d "${f}" ];
            then
                    # File is a directory, do not perform
                    echo "$f is a directory, not performing ..."
            elif [ -f "${f}" ]; 
            then
                    filename=$(basename "$f")
                    extension="${filename##*.}"
                    if [ "$extension" == "$TARGETEXT" ];
                    then
                            echo "Match"
                    else
                            echo "Mismatch - $f - $extension"
                    fi
            fi
    done
done
Run Code Online (Sandbox Code Playgroud)

再次,任何帮助表示赞赏.

regex bash

1
推荐指数
1
解决办法
1008
查看次数

如何使用Pandas填写范围内的缺失值?

我有一个数据集,具有如下所示的多个值。

>>> a.head()
   value  freq
3      9     1
2     11     1
0     12     4
1     15     2
Run Code Online (Sandbox Code Playgroud)

我需要在值列中的整数之间填写值。例如,我需要在9和11之间插入一个新行,并用零填充,然后在12-15之间插入另一行。最终结果应该是具有9-15的数据集,其中“缺失”行全为零。

无论如何,是否可以在特定位置插入新行而不替换数据?我发现的唯一方法是在一个位置处切片数据帧,然后追加新行并连接其余部分。

更新:索引是完全无关的,所以不必担心。

python pandas

1
推荐指数
1
解决办法
1745
查看次数

无法在C++中输入二维数组的值

我正在为一个班级做任务,这是相当常规的.我以前用Java做过这个,所以对我来说并不是全新的,但是,我不完全确定这里有什么问题.

基本上我需要输入几行/列的信息,然后打印列的总和,所有这些并不是特别困难.但是,每次打印数组的内容时,无论如何都是1.

我不知道出了什么问题,如果有人能告诉我为什么我会欣赏它.

哦,忘了提,我正在使用g ++进行编译.

#include <iostream>
#include <cstdio>
using namespace std;

const int ROWS = 4;
const int COLUMNS = 3;

void setupMatrix() {
    // Setup matrix
    double array[ROWS][COLUMNS];

    // Needed? Wouldn't think so.
    // for (int i = 0; i < COLUMNS; i++) {
    //      for (int j = 0; j < ROWS; j++) {
    //              array[i][j] = 0.0;
    //      }
    // }

    // Get array information from user
    for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
89
查看次数

标签 统计

java ×4

python ×2

bash ×1

c++ ×1

database ×1

flask ×1

flask-sqlalchemy ×1

geometry ×1

javafx ×1

math ×1

mysql ×1

pandas ×1

php ×1

regex ×1

sqlalchemy ×1