
Whore Amazing
18.09.2016
10:03:56
еще и тем осложняется, что в pyqt координаты не от центра идут, а от левого верхнего угла
пиздец короче

Ilia
18.09.2016
10:05:08
Аналитическая геометрия в помощь
Тут уже без листочка, карандаша и Гугла не подсказать

Google

Whore Amazing
18.09.2016
10:06:37
плехо, плехо
ладно, пойду отвлекусь на что-нибудь другое

Ilia
18.09.2016
10:09:27
Сходи погуляй лол
На выборы еще можно сходить

Whore Amazing
18.09.2016
10:12:28
было б здесь где гулять

-
18.09.2016
10:35:23
// velocity - 2 (velocity dot normal) normal
https://gfycat.com/WaryElementaryDarklingbeetle
Код на processing: https://gist.github.com/anonymous/6f0a2cb75adbe68aca32e4d2ed7888b6
Нужные моменты выделены при помощи трёх восклицательных знаков.
Основан на: https://processing.org/reference/ellipse_.html

Даниил
18.09.2016
10:41:29
Тут точно чат по Python ?

Whore Amazing
18.09.2016
10:43:00
Точно
щерт, это еще и не питон

-
18.09.2016
10:52:41
Код - просто иллюстрация для формулы. Его лучше не использовать, т.к. при увеличении скорости шаров, они начнут вести себе не так как нужно

Whore Amazing
18.09.2016
10:53:30
формулу бы вычленить
я в этом коде теряюсь

-
18.09.2016
10:54:07
Смотри функцию checkBoundaryCollision()

Google

Whore Amazing
18.09.2016
10:55:04
там какие-то встроенные функции, которые хз что делают

-
18.09.2016
10:55:36
mag - длина вектора, sub - вычитаение

Whore Amazing
18.09.2016
10:56:14
ага

-
18.09.2016
10:56:17
Но, вообще, формула вот:
velocity - 2 (velocity dot normal) normal

Whore Amazing
18.09.2016
10:56:47
я не понимать что это означает
велосити какие-то, доты

-
18.09.2016
10:57:36
dot - dot product https://en.wikipedia.org/wiki/Dot_product
velocity - вектор движения шара

Whore Amazing
18.09.2016
10:58:03
аа, теперь понятнее
спасибо
а normal?

Alex
18.09.2016
10:59:10
вот тут формулы:
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%84%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F_%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D1%85#.D0.A1.D0.BE.D0.BF.D1.80.D0.B8.D0.BA.D0.B0.D1.81.D0.B0.D1.8E.D1.89.D0.B0.D1.8F.D1.81.D1.8F_.D0.BF.D0.BB.D0.BE.D1.81.D0.BA.D0.BE.D1.81.D1.82.D1.8C_.D0.B8_.D0.BD.D0.BE.D1.80.D0.BC.D0.B0.D0.BB.D0.B8

-
18.09.2016
11:01:35
нормаль в точке касания. У круга очень проста: вектор из точки касания в центр круга

Whore Amazing
18.09.2016
11:01:41
фух, кажется, все проясняется
дело за малым - нанести векторы на пространство pyqt виджета
спасибо!

-
18.09.2016
11:27:11

fox.hs
18.09.2016
11:35:20
Перпендикулярно

-
18.09.2016
11:38:24
Не. Противоположно направленный тому, что описан двумя постами ранее.
Другими словами: единичный вектор сонаправленный вектору из центра окружности в точку касания

Google

fox.hs
18.09.2016
11:39:53
А, прошу прощения, не заметил

Whore Amazing
18.09.2016
12:39:59
ага, спасибо

-
18.09.2016
12:42:09
да

Whore Amazing
18.09.2016
12:42:21
отлично
https://github.com/rutsky/python-course/blob/master/08/asteroids/asteroids_lib/vector.py
Вот тут классный модуль, но почему задается вектор двумя координатами? это координаты начала или конца? как длина тогда? чот не понимаю.

Sergey
18.09.2016
12:51:25

Whore Amazing
18.09.2016
12:51:51
ну, я думаю, координаты начала и конца
или начала и длина
а вообще пока никак, так что могу как угодно

Sergey
18.09.2016
12:52:45
обычно начало в начале отсчета координат

Whore Amazing
18.09.2016
12:52:58
А, вот оно что
Хм, а нужно ли мне вообще в этой задаче задавать начало вектора? или она и так решится?

-
18.09.2016
13:17:57
Нет.
Поправьте меня, если ошибаюсь, но у вектора же нет начала. Это просто велечина и направление

Fox.rs
18.09.2016
13:22:50

Whore Amazing
18.09.2016
13:28:02
это смотря какая постановка задачи

-
18.09.2016
13:28:17
У вектора из геометрии есть начало и конец (направленный отрезок). А вектор из линейной алгебры задаётся одной точкой

Whore Amazing
18.09.2016
13:28:20
и так и так бывает
но, думаю, в моем случае можно обойтись координатами конца
угу, т.е. координатами конца - точки, куда он указывает. а начало - в начале координат.

N
18.09.2016
13:34:09
Парни, как можно это переделать в то, чтобы каждой букве перед тем, как их перемешать задать еще допустим 4 возможных варианта одной буквы

Google

N
18.09.2016
13:34:15
import random
import math #подключение нужных модулей
L=input("enter text: ") # вводим текст, вводим в кавычках
D=list(L) # преобразуем в список
i=0 # счетчик
Y=[] # пустой список
F=[]
l=len(D) # длина введенного текста(количество элементов списка)
l=math.factorial(l) # количество вариантов написания
while i<l: # делаем пока не исчерпаем все варианты
random.shuffle(D) # мешаем список
F=(''.join(D)) # обедняем в один элемент (было ["п","а","р"] стало ["пар"]
if F in Y: # если "пар" есть в списке Y
continue #начнем мешать элементы списка сначала
else: #если не нашел
Y[len(Y):]=[F] #добавляем в конец списка Y
print (F) #печатаем F, можно распечатать и пронумеровать элементы списка Y
i=i+1 #увеличиваем счетчик

Whore Amazing
18.09.2016
13:36:54

N
18.09.2016
13:38:11
Да да

Whore Amazing
18.09.2016
13:38:23
иначе если у тебя будет две одинаковых буквы в строке, зависнешь в бесконечном цикле
в принципе, тут одним им можно и обойтись на весь код

N
18.09.2016
13:39:02
Да, строчки три получится

Whore Amazing
18.09.2016
13:39:30
"задаать 4 допустимых варианта одной буквы" что означает?

N
18.09.2016
13:41:25
Ну допустим смотри, перед перемешкой всех этих букв, я хочу допустим, чтобы Н, могла быть Р, П или Д

Admin
ERROR: S client not available

Whore Amazing
18.09.2016
13:41:39
где могла быть?
а, вместо одной буквы подставлять 4 варианта других и учитывать все такие кобминации?

N
18.09.2016
13:44:02
Да да

Whore Amazing
18.09.2016
13:44:20
(ты там пасслист генеришь штоль?)
если буква заменяется, она заменяется единожды или все такие буквы в строке меняются?

N
18.09.2016
13:45:22
Ну один вариант в одной итерации

Whore Amazing
18.09.2016
13:46:11
эт сложнее
буква хотя бы одна точно будет?

N
18.09.2016
13:46:21
Не пасслист, а криптография)
Ну в зависимости от того может ли эта буква принимать еще значения

Whore Amazing
18.09.2016
13:47:13
составляй список из всех, проходи по нему и для каждого элемента добавляй в новый список 3 его вариации (+ он сам). (если буква там не одна, будет не 3 вариации, а n*3)

N
18.09.2016
13:48:13
Как это хотя бы примерно будет выглядеть, не поможешь?

Google

N
18.09.2016
13:49:05
Ну может быть и не один вариант в одной итерации, я не знаю, честно говоря, как лучше сделать

Whore Amazing
18.09.2016
13:50:12
ну вот у тебя результирующий лист l = [...].
l2 = []
for i in l:
if 'Л' in i:
l2.extend(i, list_replace(i))
else:
l2.append(i)
list_replace(), соответственно, функция, которая заменяет в списке нужную букву на другую

N
18.09.2016
13:51:17
Ну это понятно

Whore Amazing
18.09.2016
13:51:30
можно на лямбдах зафигачить, красивее будет

N
18.09.2016
13:52:38
Именно ввиду, что реплэйс ясен

Whore Amazing
18.09.2016
13:53:36
а вообще, код-то элементарный выходит. поспи немного, наверное, голова не варит уже :)

-
18.09.2016
14:00:12
Да. +- погрешность

Aragaer
18.09.2016
14:01:10
если они все ортогональные - да
а что за формула?

Whore Amazing
18.09.2016
14:07:33
выше была

-
18.09.2016
14:08:29
Там не единичным может быть только velocity

Whore Amazing
18.09.2016
14:21:06
не, мне его очень удобно единичным делать
ну либо я идиот
кстати, как взять единичный нормаль, зная только вектор на полную длину радиуса?

-
18.09.2016
14:31:51
умножить координаты на 1/r

Whore Amazing
18.09.2016
14:37:32
спасибо
короче, зря мы это мурыжили :) с кьютовской анимацией можно просто указывать следующую конечную точку движения возле любого из краев круга и не париться...

Stanislav
18.09.2016
14:48:49
Пиздец, статика у вк почти не грузится