LINUX.ORG.RU

Сообщения doomer

 

Лыжи не едут

Пытаюсь получить координаты сферы формула тут - https://ru.onlinemschool.com/math/formula/sphere/ Код вот:

GLfloat *buf = new GLfloat[197820*9];
GLfloat x, y, z,r=0.5;
int count = 0;
GLfloat arr1[9];
int n;
for (GLfloat i = 0; i <= 3.14; i += 0.01)
	for (GLfloat j = 0; j <= 2.0 * 3.14; j += 0.01)
	{
		x = r * (GLfloat)sin(i) * (GLfloat)cos(j);
		y = r * (GLfloat)sin(i) * (GLfloat)sin(j);
		z = r * (GLfloat)cos(i);
		arr1[0] = x;
		arr1[1] = y;
		arr1[2] = z;
		arr1[3] = 1.0;//R
		arr1[4] = 0.0;//G
		arr1[5] = 0.0;//B
		arr1[6] = 1.0;//A
		arr1[7] = 0.0;//S
		arr1[8] = 0.0;//T
		count++;
		n = sizeof(arr1) / sizeof(arr1[0]);
		std::copy(arr1, arr1 + n, buf);
	}
std::cout << "n"<<n<<"count" << count<<"buf"<< sizeof(GLfloat) * 197820 *9;
...

	f->glDrawArrays(GL_POINTS, 0, 197820);
Рисую точками - получается одна крохотная красная точка в центре. То ли формула кривая, то ли код

 ,

doomer
()

Вываливается sigsegv Qmap

Читаю xml файл и при считывании первого тега - я его в Qmap пытаюсь записать вылетает sigsegv.

#ifndef IXMLREADER_H
#define IXMLREADER_H
#include <QFile>
#include <QDebug>
#include <QtXml>
#include <QMap>
class iXMLReader
{
    QMap<QString,QString> xml;
public:
    iXMLReader();
    void traverseNode(const QDomNode node);
    bool Validate();
};

#endif // IXMLREADER_H
//...
#include "ixmlreader.h"

iXMLReader::iXMLReader()
{

}
void iXMLReader::traverseNode(const QDomNode node)
{
    QDomNode  domNode  = node.firstChild();
    while(!domNode.isNull())
    {
        if(domNode.isElement())
        {
            QDomElement  domElement  = domNode.toElement();
            if(!domElement.isNull())
            {
                if(domElement.tagName()=="OP")
                {
                    //qDebug()<<  "Attr: "<<domElement.attribute("numЬer","");
                }
                else
                {
                    xml.insert(domElement.tagName(),domElement.text());//тут ошибка
                    qDebug()<<"TagName:"<<domElement.tagName()<<"\tText:"<< domElement.text();
                    //xml[domElement.tagName()] = domElement.text();
                    qDebug()<<"TagName:"<<domElement.tagName()<<"\tText:"<<xml[domElement.tagName()];
                }
            }
        }
        traverseNode(domNode);
        domNode = domNode.nextSibling();
    }
}
bool iXMLReader::Validate()
{
    return true;
}
//...
QDomDocument  domDoc;
    QFile  file ("1.xml") ;
    if(file.open(QIODevice::ReadOnly))  {
        if(domDoc.setContent(&file)){
            QDomElement domElement=domDoc.documentElement();
            i->traverseNode(domElement);
        }
        file.close();
    }

 , , ,

doomer
()

Ошибка qt с++

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QXmlSchemaValidator>
#include <QXmlSchema>
#include <QFile>
#include <QtDebug>
#include <QAbstractMessageHandler>
class MessageHandler : public QAbstractMessageHandler {
public:
    MessageHandler() : QAbstractMessageHandler(nullptr) {}

    QString statusMessage() const { return m_description; }
    int line() const { return m_sourceLocation.line(); }
    int column() const { return m_sourceLocation.column(); }

protected:
    void handleMessage(QtMsgType type, const QString &description,
                       const QUrl &identifier, const QSourceLocation &sourceLocation) override {
        Q_UNUSED(type);
        Q_UNUSED(identifier);
        m_description = description;
        m_sourceLocation = sourceLocation;
    }

private:
    QString m_description;
    QSourceLocation m_sourceLocation;
};

void validateXML(const QString &schemaPath, const QString &xmlPath) {
    QFile xsdFile(schemaPath);
    if (!xsdFile.open(QIODevice::ReadOnly)) {
        qDebug() << "Failed to open schema file.";
        return;
    }

    MessageHandler messageHandler;
    QXmlSchema schema;
    schema.setMessageHandler(&messageHandler);

    if (!schema.load(&xsdFile, QUrl::fromLocalFile(xsdFile.fileName()))) {
        qDebug() << "Schema loading failed.";
        qDebug() << "Error:" << messageHandler.statusMessage();
        qDebug() << "Line:" << messageHandler.line();
        qDebug() << "Column:" << messageHandler.column();
        return;
    }

    QFile xmlFile(xmlPath);
    if (!xmlFile.open(QIODevice::ReadOnly)) {
        qDebug() << "Failed to open XML file.";
        return;
    }

    QXmlSchemaValidator validator(schema);
    if (!validator.validate(&xmlFile, QUrl::fromLocalFile(xmlFile.fileName()))) {
        qDebug() << "XML validation failed.";
        qDebug() << "Error:" << messageHandler.statusMessage();
        qDebug() << "Line:" << messageHandler.line();
        qDebug() << "Column:" << messageHandler.column();
    } else {
        qDebug() << "XML is valid.";
    }
}
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    validateXML("1.xsd","1.xml");
}

MainWindow::~MainWindow()
{
    delete ui;
}
ASSERT failure in virtual qulonglong QPatternist::Decimal::toUnsignedInteger() const: "It makes no sense to call this function, see Numeric::toUnsignedInteger().", file data\qdecimal.cpp, line 174

 , , ,

doomer
()

RSS подписка на новые темы